【问题标题】:Single data with multiple files to show on blade.php带有多个文件的单个数据显示在blade.php上
【发布时间】:2019-11-10 09:36:14
【问题描述】:

我想在 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

我正在获取数据,但唯一的问题是由于有多个文件,因此其他信息也会与我不想要的文件一起重复。

这是我的输出结果

【问题讨论】:

  • 到目前为止你做了什么?你能分享一些代码吗?
  • 我们不知道您要做什么,所以请清楚地解释您的问题。没有人能以目前的状态回答你的问题。
  • 我在我的问题中添加了所有信息
  • 感谢您编辑您的问题,现在情况好多了。但是,我必须进行重大的重新格式化以使其可读 - 如果您可以花时间练习使用代码格式化工具,它将帮助您在第一次开始时提出一个可读的问题。反过来,这更有可能获得支持,这将使更多读者关注您的问题。
  • 您现在需要更改查询以获取不同格式的数组,或者您可以使用集合组按用户 ID 对数据进行分组并为每个循环运行。

标签: php laravel laravel-6


【解决方案1】:

假设您有OrderDeliverOrderDeliverAttechment 模型,您可以定义模型之间的关系,如下所示。检查外键名称是否不同。

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

【讨论】:

  • 我还需要 1 个帮助 ....我在 dd() 中得到了结果,但是当我把它放在 Blade.php 文件中时,它没有显示文件,但显示了其他数据
  • 添加您正在使用的 dd() 输出和刀片代码的屏幕截图。
猜你喜欢
  • 2020-04-03
  • 2020-11-25
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 2015-07-15
  • 2013-06-25
  • 2014-01-07
相关资源
最近更新 更多