Laravel刀片创建逗号分隔列表
我有一个理由:Laravel刀片创建逗号分隔列表,laravel,laravel-blade,Laravel,Laravel Blade,我有一个理由: @foreach ($ProdottoAccessori as $prodotto) @if($scheda->id == $prodotto->id) @foreach($prodotto['accessori'] as $acc) @foreach($acc['accessoriLang'] as $accNome) <span>{!! $accNome->access
@foreach ($ProdottoAccessori as $prodotto)
@if($scheda->id == $prodotto->id)
@foreach($prodotto['accessori'] as $acc)
@foreach($acc['accessoriLang'] as $accNome)
<span>{!! $accNome->accessori !!}</span>{{ $loop->last ? '' : ', ' }}
@endforeach
@endforeach
@endif
@endforeach
您可以尝试使用laravel帮助器来创建数组
collect($acc['accessoriLang'])->implode(',');
如果您已经使用了数组,那么您可以简单地使用
$collection->implode(',')
有关更多信息,请查看
@foreach($ProdottoAccessori作为$prodotto)
@如果($scheda->id==$prodotto->id)
@foreach($prodotto['accessori']作为$acc)
{!!collect($prodotto['accessori'])->内爆(',')
@endforeach
@恩迪夫
@endforeach
希望这对您有所帮助您可以尝试使用laravel helper来阵列
collect($acc['accessoriLang'])->implode(',');
如果您已经使用了数组,那么您可以简单地使用
$collection->implode(',')
有关更多信息,请查看
@foreach($ProdottoAccessori作为$prodotto)
@如果($scheda->id==$prodotto->id)
@foreach($prodotto['accessori']作为$acc)
{!!collect($prodotto['accessori'])->内爆(',')
@endforeach
@恩迪夫
@endforeach
希望这能有所帮助好吧-下面是我的想法: 在视图之外-在控制器内或任何处理它的类内-然后将其注入视图,您可以执行以下操作:
$products=$ProdottoAccessori->map(函数($product){
$product->accessori=$product->accessori->map(函数($accessori){
$accessori->accessoriLangString='.$accessori->accessoriLang->Pull('accessori')->内爆(',');
返回$accessori;
});
退回$product;
});
现在,在视图中,您可以执行以下操作:
@foreach($prodotto形式的产品)
@如果($scheda->id==$prodotto->id)
@foreach($prodotto->accessori作为$acc)
{{$acc->accessoriLangString}
@endforeach
@恩迪夫
@endforeach
或者你也可以这样做
@foreach($prodotto形式的产品)
@如果($scheda->id==$prodotto->id)
{{$prodotto->accessori->pull('accessoriLangString')->内爆('''}}
@恩迪夫
@endforeach
好的-下面是我的想法:
在视图之外-在控制器内或任何处理它的类内-然后将其注入视图,您可以执行以下操作:
$products=$ProdottoAccessori->map(函数($product){
$product->accessori=$product->accessori->map(函数($accessori){
$accessori->accessoriLangString='.$accessori->accessoriLang->Pull('accessori')->内爆(',');
返回$accessori;
});
退回$product;
});
现在,在视图中,您可以执行以下操作:
@foreach($prodotto形式的产品)
@如果($scheda->id==$prodotto->id)
@foreach($prodotto->accessori作为$acc)
{{$acc->accessoriLangString}
@endforeach
@恩迪夫
@endforeach
或者你也可以这样做
@foreach($prodotto形式的产品)
@如果($scheda->id==$prodotto->id)
{{$prodotto->accessori->pull('accessoriLangString')->内爆('''}}
@恩迪夫
@endforeach
这就是解决方案。感谢@Sebastian Sulinski
在控制器中:
$ProdottoAccessori = App\Product::has('accessori')->with([
'productsLang',
'accessori' => function ($query) use ($array_prod_id){
$query->with([
'accessoriLang'
]);
}
])->get();
$products = $ProdottoAccessori->map(function($product) {
return $product->accessori->map(function($accessori) {
$accessori->accessoriLangString = '<span>'.$accessori->accessoriLang->pluck('accessori')->implode(', ').'</span>';
return $accessori;
});
});
我仍然不知道为什么我必须内爆2次,但它是有效的
这是输出:
<span>cerchi in lega</span>, <span>alzacristalli</span>, <span>portapacchi</span>, <span>navigatore</span>
lega的cerchi、alzacristalli、Portapachi、navigatore
这就是解决方案。感谢@Sebastian Sulinski
在控制器中:
$ProdottoAccessori = App\Product::has('accessori')->with([
'productsLang',
'accessori' => function ($query) use ($array_prod_id){
$query->with([
'accessoriLang'
]);
}
])->get();
$products = $ProdottoAccessori->map(function($product) {
return $product->accessori->map(function($accessori) {
$accessori->accessoriLangString = '<span>'.$accessori->accessoriLang->pluck('accessori')->implode(', ').'</span>';
return $accessori;
});
});
我仍然不知道为什么我必须内爆2次,但它是有效的
这是输出:
<span>cerchi in lega</span>, <span>alzacristalli</span>, <span>portapacchi</span>, <span>navigatore</span>
lega的cerchi、alzacristalli、Portapachi、navigatore
你可以通过收集或简单地使用内爆函数来实现所有这些-让我写一个例子。为什么不使用explode()
@SebastianSulinski我怀疑我使用了太多的代码,但我对拉威尔是新手。欢迎提出任何建议!!你能用$ProdottoAccessori
的实际结构来更新你的问题吗?它包含哪些索引等。从我看到你与accessori
有关系,而这一个与accessoriLang
有关系,但如果我错了,请纠正我。这是正确的,要更新问题,您可以通过收集或简单地使用内爆函数来实现所有这些-让我写一个例子。为什么不使用explode()
@SebastianSulinski我怀疑我使用了太多的代码,但我对Laravel是新手。欢迎提出任何建议!!你能用$ProdottoAccessori
的实际结构来更新你的问题吗?它包含哪些索引等。从我看到你与accessori
有关系,而这一个与accessoriLang
有关系,但如果我错了,请纠正我。这是正确的,要更新问题这不符合我的需要,或者我不知道如何使用和在哪里使用it@DaFois看看更新的答案它可能会解决你的问题这项工作,但没有逗号{!!collect('acknome['accessori'])->内爆(',')!!
这不符合我的需要,或者我不知道怎么用,在哪里用it@DaFois查看更新的答案它可能会解决您的问题这项工作,但没有逗号{!!collect('accNome['accessori'])->内爆(',')!!
我需要所有产品的列表以及每个产品的相关附件。这就是我将$PRODOTOACCESSORI的$array\u prod\u id
传递给查询生成器的原因。在您的回答中,您正在隔离一个我不需要的产品,现在它返回的Property[id]在此集合实例上不存在。
我不得不对您的代码做一些技巧,但最终它起作用了。我把解决方案放在了一个答案中。对不起,我忘记了。我更新了我的答案。我已经给出了我自己的答案,但我不确定这两个答案。我需要所有产品的列表以及每个产品的相关附件。这就是我将$PRODOTOACCESSORI的$array\u prod\u id
传递给查询生成器的原因。在您的回答中,您正在隔离一个我不需要的产品,现在它返回的Property[id]在此集合实例上不存在。
I