在表格中显示hasMany关系

问题描述 投票:0回答:1

我有一张助手和小桌子。助理可以有很多小孩,我使用外键“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');
    }
}

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

laravel eloquent has-many
1个回答
1
投票

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

如果你想要助手有很多小孩,那么enfants模型应该有一个名为'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
© www.soinside.com 2019 - 2024. All rights reserved.