我知道已经问过这个问题,但是我被困住了... 我有2张桌子(俱乐部和俱乐部):
在我的表俱乐部中,我有3个字段id_club,name_club,type_sport_club
一切都在我的桌上Clubs
但是我被困在桌子上 Membres ,我不明白...
有关信息,我有3个字段id_membre,name_membre,fk_club
所以...在我的数据库中,我有这个
public function up()
{
Schema::create('membres', function (Blueprint $table) {
$table->increments('id_membre');
$table->string('name_membre');
$table->integer('fk_club')->unsigned();
$table->foreign('fk_club')->references('id_client')->on('clients');
$table->timestamps();
});
}
然后在模型上我拥有
class Membre extends Model
{
//
protected $fillable = ['name_membre', 'fk_club'];
}
在Controller之后,我有了
public function index()
{
$membres = Membre::oldest()->paginate(5);
return view('admin.membres.index', compact('membres'))
->with('i', (request()->input('page', 1)-1)*5);
}
在我的index.blade中,我有这个
@foreach($membres as $membre)
<tr>
<td> {{$membre->name_membre}}</td>
<td> {{$membre->fk_club}}</td>
<td>
<form method="POST" action="{{ route('membres.destroy', $membre) }} ">
<a class="btn btn-sm btn-warning" href="{{route('membres.edit',$membre->id_membre)}}">Editer</a>
@csrf
@method('DELETE')
<button type="submit" class="btn btn-sm btn-danger">Deleter</button>
</form>
</td>
</tr>
@endforeach
感谢您的帮助。
答案 0 :(得分:1)
首先,您在id_client
表中的成员迁移引用clients
中的外键,您可能希望在id_club
表中引用clubs
(除非您的表实际上称为客户)。
然后,要获取会员所属俱乐部的名称,您必须在club
模型中添加一个名为Membre
的函数,该函数将返回类似$this->belongsTo('App\Club');
的内容。如果还没有这样做,还应该向members
模型中添加一个Club
函数,该函数将返回类似$this->hasMany('App\Membre');
的内容。
您认为您可以使用$membre->club->name_club
访问俱乐部的名称。
Here's到Laravel有关口才关系的文档的链接,也许可以帮助您清除一切。
答案 1 :(得分:1)
您需要定义您的关系,
class Membre extends Model
{
//
protected $fillable = ['name_membre', 'fk_club'];
public function club()
{
return $this->belongsTo('App\Club', 'fk_club');
}
}
现在您可以像下面这样使用
<td> {{$membre->club->name_club}}</td>
答案 2 :(得分:1)
在您的Membre
模型上添加此
class Membre extends Model{
//
protected $fillable = ['name_membre', 'fk_club'];
public function club(){
return $this->belongsTo('App\Club', 'fk_club');
}
}
您可以通过
在视图文件中获取此数据<td> {{$membre->club->name_club}}</td>
您的俱乐部模特添加了这个
class Club extends Model{
public function membre(){
return $this->hasMany('App\Membre', 'fk_club','id_club');
}
}