Показать hasMany отношения в таблице - PullRequest
0 голосов
/ 20 марта 2019

У меня есть помощник и детские столы.У помощника может быть много детей, и я использовал внешний ключ "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 Ответ

1 голос
/ 20 марта 2019

Убедитесь, что вы правильно написали имена своих классов. В вашем примере у вас есть return $this->belongsTo('App\Parrent');, но я предполагаю, что имя класса Parent основано на том, что вы назвали своей функцией.

Если вы хотите, чтобы у Assistants было много enfants, то модель enfants должна иметь свойство 'assistant_id', чтобы они могли быть связаны Laravel.

Что касается отображения в шаблоне блейда, убедитесь, что вы передаете данные в представление из контроллера. Со всей соответствующей информацией, я предлагаю вам взглянуть на нетерпеливая загрузка .

В шаблоне лезвия вы просто создадите таблицу с циклом

@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
...