0

如果我在渲染方法中使用 dd(),则输出到屏幕

Illuminate\Support\Collection {#1355 ▼
  #items: array:1 [▼
    0 => {#1360 ▼
      +"provider": "provider"
      +"name": "name"
      +"id": 2
      +"price": 35.0
    }
  ]
}

这是 ProductSelect 组件类。试过...

  1. view('components.product-select',['products'=>$products]);
  2. view('components.product-select',compact('products'));
  3. view('components.product-select',['products'=>$products->toArray()]);
  4. 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>

有什么想法吗?

4

1 回答 1

0

看起来我的问题是命名问题。我正在将一个动作传递给控制器​​以获取数据..

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,'att_id'=>$this->attid]);
        return view('components.product-select', [
            'test' => $test,
            ]);
    }

于 2021-07-22T12:31:35.747 回答