You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel仓库模式下如何正确获取多变量数据

Laravel仓库模式多变量数据获取问题解决

问题原因

控制器代码错误地将仓库返回的完整数据数组赋值给了$data['all_product'],导致仓库返回的deal_product、top_selling等其他数据集被嵌套在all_product键下,无法在视图中直接访问。

修复方案

直接将仓库返回的数组赋值给控制器的$data变量,让仓库返回的所有键成为$data的直接元素:

修正后的控制器代码

public function index(){   
    $data = $this->data->index();
    return view('frontend.index', compact('data'));
}

如果控制器需要加入自定义额外数据,可使用array_merge合并:

public function index(){   
    // 自定义额外数据
    $customData = [
        'page_title' => '首页'
    ];
    
    $data = array_merge($customData, $this->data->index());
    return view('frontend.index', compact('data'));
}

视图访问方式

修复后,在视图中可直接访问仓库返回的所有数据集:

{{-- 访问每日特惠产品 --}}
@foreach($data['deal_product'] as $product)
    <div>{{ $product->product_name }}</div>
@endforeach

{{-- 访问热销产品 --}}
@foreach($data['top_selling'] as $product)
    <div>{{ $product->product_name }}</div>
@endforeach

内容的提问来源于stack exchange,提问作者Shahnewaj Sajib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:37:08