у меня есть две таблицы, которые имеют отношение один ко многим, я пытаюсь получить данные по идентификатору из обеих таблиц - PullRequest
0 голосов
/ 20 февраля 2020

модель поставщика

public function supplierlandlines(){
        return $this->HasMany('\App\Supplierlandline');
     }

модель стационарного поставщика

public function suppliers(){
        return $this->BelongsTo('\App\Supplier');
     }

контроллер

public function show (){
        $suppliers=\App\Supplier::all();
        $supplierlandlines = \App\Supplier::find(1)->supplierlandlines;


    return view('suppliers',compact('suppliers','supplierlandlines'));




    }

view

@foreach($suppliers as $supplier)
                            <tr >


                                <td >{{$supplier->name}}</td>
                                <td >{{$supplier->company}}</td>
                                <td >{{$supplier->address}}</td>
                                <td >{{$supplier->email}}</td>

                                    <ul >
                                        @foreach($supplierlandlines as $supplierlandline)

                                        <li>{{$supplierlandline->landline}}</li>

                                        @endforeach

                                    </ul>
                                </td>

                          </tr>

это возвращает номера первого поставщика для всех поставщиков, мне нужно вернуть номера каждого поставщика

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Попробуйте использовать Стремительная загрузка .

Контроллер:

public function show (){
   $suppliers = \App\Supplier::with('supplierlandlines')->all();

    return view('suppliers', ['suppliers' => $suppliers]);
}

Просмотр:

@foreach($suppliers as $supplier)
    <tr >
        <td >{{$supplier->name}}</td>
        <td >{{$supplier->company}}</td>
        <td >{{$supplier->address}}</td>
        <td >{{$supplier->email}}</td>
            <ul >
                @foreach($supplier->supplierlandlines as $supplierlandline)
                    <li>{{$supplierlandline->landline}}</li>
                @endforeach
            </ul>
        </td>
    </tr>
@endforeach
0 голосов
/ 20 февраля 2020

изменение в вашем контроллере

public function show (){
        $suppliers=\App\Supplier::with('supplierlandlines')->get();
        $supplierlandlines = \App\Supplier::find(1)->supplierlandlines;


    return view('suppliers',compact('suppliers','supplierlandlines'));




    }

Изменение HasMany на hasmany

public function supplierlandlines(){
        return $this->hasMany('\App\Supplierlandline');
     }

blade. php

@foreach($suppliers as $supplier)
                            <tr >


                                <td >{{$supplier->name}}</td>
                                <td >{{$supplier->company}}</td>
                                <td >{{$supplier->address}}</td>
                                <td >{{$supplier->email}}</td>

                                    <ul >
                                        @foreach($supplierlandlines as $supplierlandline)

                                        <li>{{$supplierlandline->landline}}</li>

                                        @endforeach

                                    </ul>
                                </td>

                          </tr>

@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...