No query results for model [App\\Products] Laravel

2019-03-06 03:07发布

问题:

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

回答1:

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.

public function searchCategoryByTag($id)
{
    $category_id = Products::findOrFail($id);
    $records=\DB::table('products')->Where('category_id', $category_id);
}


回答2:

If $id equals category id, do only $records = Products::where('category_id', $id)->get(); in searchCategoryByTag.



回答3:

Try adding this member to your Product model class;

protected $table = 'products';


回答4:

**You should change form **

 $category_id = Products::findOrFail($id);
 $records=\DB::table('products')->Where('category_id','$category_id')->get();

change to this $records = Products::where('category_id', $id)->get();

`$categroy_id ` 

**is get object form your products table instance of **$category_id to $category_id->id