In laravel5 i got following message(error)
No query results for model [App\Products].
I have a table "products
" which has a column "category_id
" that a category Id
of each category items. I want to show the items according to category Id
My controller is like this
public function category()
{
$recordsByCategories=\DB::table('products')
->select('categories','category_id', \DB::raw('count(*) as totalProducts'))
->groupBy('categories')
->get();
return view('dashboard.show',compact('recordsByCategories'));
}
**//I have received error in below function**
public function searchCategoryByTag($id)
{
$category_id = Products::findOrFail($id);
$records=\DB::table('products')->Where('category_id','$category_id');
dd($records);
}
My routes is like this
Route::get('categorys/{id}' ,array(
'as'=>'category',
'uses'=>'GoodsController@searchCategoryByTag'));
My view is like this
@foreach($recordsByCategories as $recordsByCategory)
<a href="{{URL::route('category',$recordsByCategory->category_id)}}
" id="search">{{$recordsByCategory->categories}}</a>:{{$recordsByCategory->totalProducts}}
@endforeach
If $id equals category id, do only
$records = Products::where('category_id', $id)->get();
in searchCategoryByTag.Try adding this member to your Product model class;
I know it's too late, but for the help for you(May be) and other people:
Here you mistaken the
'$category_id'
, remove that single quotes.**You should change form **
change to this
$records = Products::where('category_id', $id)->get();
**is get object form your products table instance of **
$category_id
to$category_id->id