Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel刀片创建逗号分隔列表_Laravel_Laravel Blade - Fatal编程技术网

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