Отдельные данные с несколькими файлами для показа на blade.php - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу показать сообщение пользователя с его именем, датой, сообщением и несколькими файлами в Laravel 6.

Admin 2nd Oct 2019
this is my message.
file1, file2 ,file3,....

Так я хочу показать данные

Это код моего контроллера:

$data2=DB::table('order_deliver')
    -> select('order_deliver.id' , 'order_deliver.deliver_by_id' , 'order_deliver.message' , 'order_deliver.created_at','order_deliver_attechments.attechment','order_deliver_attechments.deliver_id')
    -> join('order_deliver_attechments','order_deliver_attechments.deliver_id','=','order_deliver.id')
    -> where(['order_deliver.order_id' => $order_id])
    //->->distinct()
    //->groupBy('order_deliver_attechments.deliver_id')
    -> get()->toArray();


  return view("Admin.view.AdminViewSingleOrder" , ['adminMessage'=>$data2]);

код blade.php

@foreach($adminMessage as $info)
             <div class="pdl-20">
               <h4 class="text-capitalize "><i class="fa fa-user pdr-10 fs-19" aria-hidden="true"></i> <b>Admin</b><span class="fs-10 pdl-10">{{$info->created_at}} 16 nov, 2019</span></h4>
               <p><i class="fa fa-comments-o pdr-10 fs-19" aria-hidden="true"></i>{{$info->message}}</p>
               <p><i class="fa fa-paperclip pdr-10 fs-19" aria-hidden="true"></i> <span class="font-weight-normal text-capitalize ">
                <a href="{{--URL::to('/Orders_attachments/'.$info->attechment)--}}" download>{{$info->attechment}}, </a></span><p>
             </div>
             @endforeach

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

Это мой результат вывода

image

1 Ответ

0 голосов
/ 11 ноября 2019

Вы можете определить отношения между вашей моделью следующим образом, предполагая, что у вас есть модель OrderDeliver и OrderDeliverAttechment. Проверьте имя внешнего ключа, если они различаются.

class OrderDeliver extends Model
{
    /**
     * Get the OrderDeliverAttechments for the OrderDeliver.
     */
    public function attachments()
    {
        return $this->hasMany(OrderDeliverAttechment::class);
    }
}

Теперь вы можете использовать eloquent для запуска вашего запроса, как показано ниже:

$orderDelivers = OrderDeliver::where('order_id',$order_id)->with('attachments')->get();

Теперь у вас будет полученная коллекция в виде многомерного массива иВы можете запустить 2 вложенных цикла foreach и отобразить данные соответствующим образом

@foreach($orderDelivers as $orderDeliver)

    //Display data from main table
    @foreach($orderDeliver->attachments as $attachments)
        //Display fields from order_deliver_attachment table
    @endforeach

@endforeach
...