在foreach中laravel undefined变量错误

时间:2015-10-19 18:39:55

标签: php laravel-5.1

这是我的控制器功能

public function products() {

    return view('products', array('page' => 'products'));
}

这是视图

@foreach ($products as $product)

这是路线

Route::get('products','FrontController@products');

这是错误

  

未定义的变量:产品(查看:   C:\ XAMPP \ htdocs中\ OSM \资源\视图\ products.blade.php)

1 个答案:

答案 0 :(得分:0)

传递数据以进行查看的方式是创建名为$page的变量,其值为"products"

在控制器内部,您需要获取要传递给foreach循环的产品数据并将其保存到变量中。假设您已经有Eloquent model名为'产品',您可以致电$products = Product::all();,这将返回每个产品的集合。然后,您可以使用

将其传递给您的视图
  • view('products')->withProducts($products)
  • view('products')->with('products', $products);
  • view('products', ['products' => $products]);

还有其他方法,例如,如果您有一个名为$products$page的变量,请使用compact

view('products', compact('products', 'page'));

compact基本上创建一个数组,使用变量名作为键,变量值作为相应的值。