0

在我的控制器中,我目前为视图提供了 2 个参数,如下所示:

return view('home')->with(['listings'=>$listings, 'featured_listings'=>$featured_listings]);

但是当我添加第三个参数时,它会给我以下消息:

Too few arguments to function App\Http\Controllers\HomeController::index(), 0 passed and exactly 1 expected

有没有办法从控制器为视图提供超过 2 个参数?

4

3 回答 3

2

这很简单,可以将数据传递给多个视图。有很多方法可以将数据传递给视图。我建议你

return view('home',compact('listings','featured_listings','your_data',...));
于 2020-04-19T11:15:32.587 回答
0

您可以通过多种方式与视图共享数据。它不限于 1 或 2 个参数。您可以共享无限的参数。

选项1

$categories = ProductCategory::all();
$brands = ProductBrand::all();
$product = Product::first();

return view('product.edit', compact(['categories', 'brands', 'product']));

选项 2

$categories = ProductCategory::all();
$brands = ProductBrand::all();
$product = Product::first();

return view('product.edit', ['categories' => $categories, 'brands' => $brands, 'product' => $product]);

选项 3

$categories = ProductCategory::all();
$brands = ProductBrand::all();
$product = Product::first();

return view('product.edit')->with('categories', $categories)->with('brands', $brands)->with('product', $product);
于 2020-04-19T12:35:01.907 回答
0

如果你可以把参数像

return view('home', [
        'listings' => $listings, 
        'featured_listings' => $featured_listings,
        ..............................
]);

那么你可以放2个以上。

于 2020-04-19T11:07:30.633 回答