Я использую Laravel 5 для проекта.
Я использую один и тот же столбец одной и той же таблицы 2 раза в другой таблице, используя другой идентификатор.
Теперь, когда я хочу отобразить оба имени соответственно идентификатору на странице просмотра, это показывает проблему ..
<div class="tab-pane fade in active" id="tab1primary">
<ul>
<label>PREVIOUS CLUB</label>
{!! Form::select('previous_club_id',$club,null,array('class'=>'form-control')) !!}
</ul>
</div>
<div class="tab-pane fade" id="tab2primary">
<ul>
<label>CURRENT CLUB</label>
{!! Form::select('current_club_id',$club,null,array('class'=>'form-control')) !!}
</ul>
</div>
я вставил данные и вставил успешно ..
и когда я показываю идентификатор, он показывает только идентификатор ..
<td>{!!$playerhistories->current_club_id!!}</td>
<td>{!!$playerhistories->previous_club_id!!}</td>
но проблема в том, когда я хочу показать предыдущее название клуба и текущее название клуба …
<td>{!!$playerhistories->club->name!!}</td>
это показывает эту проблему:
Попытка получить свойство необъекта (Просмотр: /var/www/fcimsProject/resources/views/admin/playerhistories/index.blade.php)
У меня есть отношения в модели истории игрока, как:
public function club()
{
return $this->belongsTo('App\Club');
}
в случае матча между двумя командами, предположим, Аргентина и Бразилия мы используем таблицу клубов и название магазина магазина обоих и как отобразить на странице просмотра как название клуба ????
ответьте, пожалуйста…
У вас есть внешний ключ, который не соответствует стандартам Laravel. В этом случае вы должны создать отношение и сказать eloquent, что такое внешний ключ.
public function currentClub() {
return $this->belongsTo('Club', 'current_club_id');
}
public function previousClub() {
return $this->belongsTo('Club', 'previous_club_id');
}
С этим вы можете позвонить $playerhistories->currentClub->name
а также $playerhistories->previousClub->name
чтобы получить данные из клубов.
Информацию о том, как установить отношения с пользовательскими внешними ключами, можно найти в документация Laravel.
Других решений пока нет …