在表中显示hasMany关系

时间:2019-03-20 18:23:19

标签: laravel eloquent has-many

我有一个助手桌和婴儿桌。助手可以有许多婴儿,我使用外键“ assistant_id”来关联它们。我想显示一张桌子,每个助手都有他的通讯婴儿。

class Assistant extends Model
{


    protected $fillable=['username','nom', 'prenom' , 'telephone','adresse','mot_de_passe'];
    protected $dates=['created_at','updated_at'];


    public function enfants()
    {
        return $this->hasMany(Enfant::class)->select(['id','prenom']);
    }
}

然后:

class Enfant extends Model
{
    protected $fillable=['username','nom', 'prenom' , 'telephone','adresse','mot_de_passe'];
    protected $dates=['created_at','updated_at'];

    public  function parent()
    {
        return $this->belongsTo('App\Parrent');
    }

    public  function assistant()
    {
        return $this->belongsTo('App\Assistant');
    }
}

请在我的视图刀片和控制器中写些什么?我找不到明确的答案。

1 个答案:

答案 0 :(得分:1)

确保正确拼写您的班级名称。在您的示例中,您有return $this->belongsTo('App\Parrent');,但是我假设的类名称是Parent,这是基于您为函数命名的。

如果您希望助手有很多孩子,那么孩子模型应该具有一个名为“ assistant_id”的属性,以便Laravel可以将它们关联起来。

对于在刀片模板中显示,请确保将数据从控制器传递到视图。结合所有相关信息,建议您查看eager loading

在刀片模板中,您只需制作一个带有循环的表

@foreach($assistants as $assistant)
    <tr>
        <td>{{ $assistant->nom }}</td>
        <td>
            <ol>
                @foreach($assistant->enfants as $enfant)
                    <li>{{ $enfant->nom }}</li>
                @endforeach
            </ol>
        </td>
    </tr>
@endforeach