如何解决Laravel 无法将集合/数组从组件类返回到组件
Illuminate\Support\Collection {#1355 ▼
#items: array:1 [▼
0 => {#1360 ▼
+"provider": "provider"
+"name": "name"
+"id": 2
+"price": 35.0
}
]
}
这是 ProductSelect 组件类。试过了...
- view('components.product-select',['products'=>$products]);
- view('components.product-select',compact('products'));
- view('components.product-select',['products'=>$products->toArray()]);
- view('components.product-select')->with(['products'=>$products->toArray()]);
和其他一些
。我很困惑,因为 DD 将发送到屏幕。但是当我在视图中使用该变量时,它没有将其拾取..
public function render()
{
$products = $this->products->execute(['user_id'=> $this->userid,'att_id'=>$this->attid]);
dd($products);
return view('components.product-select')->with(['products'=>$products]);
}
product-select.blade 在这里。我试图用这里的产品输出创建另一个组件。
<div {{ $attributes->merge(['class' => 'modal-body row '. $classBody])}}>
@foreach ($products as $product)
<x-product-card
class="w-100"
:name="$product->name"
:description="$product->description"
:productid="$product->id"
:price="$product->price"
>
</x-product-card>
@endforeach
<div {{ $attributes->merge(['class' => 'modal-footer ' . $classFoot])}}>
{{ $buttons }}
</div>
有什么想法吗?
解决方法
看起来我的问题是命名问题。我正在将一个动作传递给控制器以获取数据..
public $products;
public function __construct(AllowedProducts $products)
{
$this->products = $products;
}
然后无意中尝试重用该变量。这导致了问题..
public function render()
{
$products= $this->products->execute(['user_id'=> $this->userid,'att_id'=>$this->attid]);
return view('components.product-select',[
'products' => $products,]);
}
所以我将其更改为 $test 并且它起作用了。无需将其添加到类列表中的变量中。我不确定这是否是一个错误。在框架中
public function render()
{
$test= $this->products->execute(['user_id'=> $this->userid,[
'test' => $test,]);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。