Support the ongoing development of Laravel.io →
Eloquent Views Blade

Hello,

I am very new to laravel and this error has held me back for the past three hours

ErrorException (E_UNKNOWN) Undefined variable: products (View: .....

MY CONTROLLER HAS

public function showProducts() {

	$products = DB::table('categories')
        ->join('products', 'products.product_id', '=', 'categories.category_id')
        ->join('merchants_products', 'merchants_products.product_id', '=', 'products.product_id')
        ->join('merchants', 'merchants.merchant_id', '=', 'merchants_products.merchant_id')
        ->select('merchants_products.product_id', 'merchants_products.image', 'merchants_products.price', 'merchants.storeName','products.product_name')
        ->take(16)
        ->get();
 
	return View::make('/category1')->with('categories', $products);

}

MY ROUTE HAS

Route::get('category1', 'ProductsController@showProducts');

AND MY VIEW HAS

@foreach ($products as $value)

                {{ $value->product_name }}
                
            @endforeach
Last updated 3 years ago.
0

When you are returning the view, you are sending the data in a variable you have named 'categories'. If you change $products to $categories, in your View, everything should display properly.

Last updated 3 years ago.
0

Thanks tfevens, it works now!!

Last updated 3 years ago.
0

Sign in to participate in this thread!

Eventy

Your banner here too?

sparkandy sparkandy Joined 28 Sep 2014

Moderators

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2025 Laravel.io - All rights reserved.