Php Laravel:如何在表4中显示属于1模型的不同命名列

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');

我在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 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;)