Я пытаюсь создать некоторые отношения с моими таблицами (Player и Team), но я не могу отобразить имя моей команды с ассоциированным игроком.Laravel One To Many (Игроки и команда)
Руководство: В команде много игроков. Внешний ключ (TEA_ID) находится в таблице игроков.
Вот моя команда Model (Team.php)
class Team extends Model
{
protected $table = 'teams';
protected $primaryKey ='TEA_ID';
public function players(){
return $this->hasMany('App\Model\Player');
}
}
Вот часть моего шаблона (players.blade.php)
<?php
foreach($players as $player) {
?>
<tr>
<td><?php echo $player->PLA_ID?></td>
<td><?php echo $player->PLA_Name?></td>
<td><?php echo $player->PLA_Surname?></td>
<td><?php echo $player->PLA_Pseudo?></td>
@if($player->team)
<td><?php echo $player->team->TEA_NAME?></td>
@endif
<td>|<span class="glyphicon glyphicon-pencil"></span>|</td>
<td>|<span class="glyphicon glyphicon-trash" data-toggle="modal" data-target="#modalDelete"></span>|</td>
</tr>
Вот мой контроллер игрока (PlayerController.php)
public function show(){ // reçoit l'url http://monsite.fr/users avec le verbe "get" et qui retourne le formulaire.
$players = player::with('team')->get();
return view('players', ['players' => $players]);
}
Вот плеер Модель (Player.php)
class Player extends Model
{
protected $table = 'players';
protected $primaryKey ='PLA_ID';
public function team(){
return $this->belongsTo('App\Models\Team');
}
}
Таблица playes отображает ДАННЫЕ правильно, но имя не команды. Я знаю, что могу использовать метод belongsTo(), но не знаю, где моя ошибка. Спасибо за вашу помощь, я узнаю много =)
где ваша модель игрока? – follio
Извините, вот модель, но я специально работал над Team Model для отношений. –
Вам действительно нужно установить отношения 'belongsTo()' в вашей модели проигрывателя. если вы хотите, чтобы работал '$ player-> team-> TEA_NAME'. – follio