Php Laravel:如何在表4中显示属于1模型的不同命名列
我在add_members表中有4列:activitive_id_1、activitive_id_2、activitive_id_3和activitive_id_4。它们都属于活动家模式:Php Laravel:如何在表4中显示属于1模型的不同命名列,php,laravel,relationship,Php,Laravel,Relationship,我在add_members表中有4列:activitive_id_1、activitive_id_2、activitive_id_3和activitive_id_4。它们都属于活动家模式: public function members() { return $this->hasMany('App\AddMember', 'activist_id_1', 'activist_id_2', 'activist_id_3', 'activist_id_4');
public function members()
{
return $this->hasMany('App\AddMember', 'activist_id_1', 'activist_id_2', 'activist_id_3', 'activist_id_4');
}
添加成员模型:
public function activist()
{
return $this->belongsTo('App\Activist', 'activist_id_1', 'activist_id_2', 'activist_id_3', 'activist_id_4');
}
如果我尝试这样显示表:
<td>{{$add_member->activist_id_1 ? $add_member->activist_id_1->name : ''}}</td>
<td>{{$add_member->activist_id_2 ? $add_member->activist_id_2->name : ''}}</td>
<td>{{$add_member->activist_id_3 ? $add_member->activist_id_3->name : ''}}</td>
<td>{{$add_member->activist_id_4 ? $add_member->activist_id_4->name : ''}}</td>
<td>{{$add_member->activist1->name or ''}}</td>
<td>{{$add_member->activist2->name or ''}}</td>
方法为的地方有很多,但总是出错
如何解决此问题?您应该为每个活动id创建一个函数。例如:
public function activist1()
{
return $this->belongsTo('App\Activist', 'activist_id_1');
}
public function activist2()
{
return $this->belongsTo('App\Activist', 'activist_id_2');
}
然后这样称呼他们:
<td>{{$add_member->activist_id_1 ? $add_member->activist_id_1->name : ''}}</td>
<td>{{$add_member->activist_id_2 ? $add_member->activist_id_2->name : ''}}</td>
<td>{{$add_member->activist_id_3 ? $add_member->activist_id_3->name : ''}}</td>
<td>{{$add_member->activist_id_4 ? $add_member->activist_id_4->name : ''}}</td>
<td>{{$add_member->activist1->name or ''}}</td>
<td>{{$add_member->activist2->name or ''}}</td>
{{$add_member->activist1->name或''>}
{{$add_member->activist2->name或''}}
此外,在Blade中,您可以使用括号内的
或来避免空关系。每个活动者都与一个函数相关,
您有AddMember
型号:
public function activist1()
{
return $this->belongsTo('App\Activist', 'activist_id_1');
}
public function activist2()
{
return $this->belongsTo('App\Activist', 'activist_id_2');
}
public function activist3()
{
return $this->belongsTo('App\Activist', 'activist_id_3');
}
public function activist4()
{
return $this->belongsTo('App\Activist', 'activist_id_4');
}
显示表:
<td>{{$add_member->activist1->name or ''}}</td>
<td>{{$add_member->activist2->name or ''}}</td>
<td>{{$add_member->activist3->name or ''}}</td>
<td>{{$add_member->activist4->name or ''}}</td>
{{$add_member->activist1->name或''>}
{{$add_member->activist2->name或''}}
{{$add_member->activist3->name或''}}
{{$add_member->activist4->name或''}}
我不知道为什么我认为它可以用一种方法完成所有事情,而不必更多:)是的,这很有效,谢谢@Laerte;)