【问题标题】:Laravel 5.7 Undefined VariableLaravel 5.7 未定义变量
【发布时间】:2019-01-14 11:40:48
【问题描述】:

我正在努力在单独的 index.blade.php 页面中显示产品,但该页面未打开并出现错误:

未定义变量:productsALL

@foreach($productsALL as $product)
    <img src="{{ asset('images/backend_images/products/small/'.$product->image) }}" alt="IMG-PRODUCT">
    {{ $product->product_name }}
@endforeach

路线

Route::get('/','IndexController@index');

索引控制器

public function index()
{
    // Get all Products
    $productsAll = Product::inRandomOrder()->where('status', 1)->get();
    $productsAll = json_decode(json_encode($productsAll));

    // Get All Categories and Sub Categories
    $categories_menu = '';
    $categories = Category::with('categories')->where(['parent_id' => 0])->get();
    $categories = json_decode(json_encode($categories));
    /*echo "<pre>"; print_r($categories); die;*/
    foreach ($categories as $cat) {
        $categories_menu .= "
        <div class='panel-heading'>
            <h4 class='panel-title'>
                <a data-toggle='collapse' data-parent='#accordian' href='#" . $cat->id . "'>
                    <span class='badge pull-right'><i class='fa fa-plus'></i></span>
                    " . $cat->name . "
                </a>
            </h4>
        </div>
        <div id='" . $cat->id . "' class='panel-collapse collapse'>
            <div class='panel-body'>
                <ul>";
        $sub_categories = Category::where(['parent_id' => $cat->id])->get();
        foreach ($sub_categories as $sub_cat) {
            $categories_menu .= "<li><a href='#'>" . $sub_cat->name . " </a></li>";
        }
        $categories_menu .= '</ul>
            </div>
        </div>';
    }

    $banners = Banner::where('status', '1')->get();

    return view('index')->with(compact('productsAll', 'categories_menu', 'categories', 'banners'));
}

【问题讨论】:

    标签: laravel eloquent laravel-5.7


    【解决方案1】:

    这里有错误的部分

    return view('index')->with(compact('productsAll','categories_menu','categories','banners'));
    

    改成这个

    return view('index',compact('productsAll','categories_menu','categories','banners'));
    

    希望有效果

    【讨论】:

      【解决方案2】:

      您可以使用 with 和 compact 方法将变量从控制器传递到视图。

      1)第一种方法,
      $data=array('productsAll'=>$productsAll, 'categories_menu'=>$categories_menu, 'categories'=>$categories); return view('view')->with($data);

      2) 第二种方法,
      //Mostly i used this method for passing data in view
      return view('index',compact('productsAll','categories_menu','categories','banners'));

      或,

      $data=array('productsAll','categories_menu','categories','banners'); return view('view')->compact($data);

      【讨论】:

        猜你喜欢
        • 2019-03-01
        • 2019-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-18
        • 2019-04-29
        • 1970-01-01
        • 2015-05-15
        相关资源
        最近更新 更多