Laravel One To Many关系(球员和球队)

时间:2016-09-15 09:17:18

标签: php laravel eloquent one-to-many

我正在尝试与我的桌子(玩家和团队)建立一些关系,但我无法向玩家伙伴显示我的团队名称。

指南:团队中有很多玩家。外键(TEA_ID)位于播放器表上。

这是我的团队模型( 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');
}

}

表格播放正确显示数据,但不显示团队名称。我知道我可以使用belongsTo()方法,但我不知道我的错误在哪里。谢谢你的帮助,我会学到很多东西=)

1 个答案:

答案 0 :(得分:0)

您应该在玩家模型中定义与Team的关系:

class Player extends Model
{
    protected $table = 'players';
    protected $primaryKey ='PLA_ID';

    public function team() {
        return $this->belongsTo('App\Model\Team');
    }

}

然后您将能够以这种方式访问​​团队数据: (假设$ player是玩家模型的一个实例)

$player->team->TEA_NAME

希望它可以提供帮助。