没有关于model [App \ Products] Laravel的查询结果

时间:2015-06-02 01:30:34

标签: php mysql laravel laravel-5

在laravel5中,我收到了以下消息(错误)

No query results for model [App\Products].

我有一张桌子" products"其中有一列" category_id"每个类别项目category Id。我想根据category Id

显示相关项目

我的控制器是这样的

 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);

        }

我的路线就像这样

 Route::get('categorys/{id}' ,array(
    'as'=>'category',
    'uses'=>'GoodsController@searchCategoryByTag'));

我的观点是这样的

@foreach($recordsByCategories as $recordsByCategory)

    <a href="{{URL::route('category',$recordsByCategory->category_id)}}
    " id="search">{{$recordsByCategory->categories}}</a>:{{$recordsByCategory->totalProducts}} 

    @endforeach

6 个答案:

答案 0 :(得分:4)

我知道为时已晚,但为了你(可能)和其他人的帮助:

在这里你误认为'$category_id',删除那些单引号。

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

答案 1 :(得分:0)

如果$ id等于类别ID,则只在searchCategoryByTag中执行$records = Products::where('category_id', $id)->get();

答案 2 :(得分:0)

尝试将此成员添加到您的Product model类;

protected $table = 'products';

答案 3 :(得分:0)

**你应该改变形式**

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

更改为  $records = Products::where('category_id', $id)->get();

`$categroy_id ` 

**是从$category_id$category_id->id

的产品表格实例获取对象

答案 4 :(得分:0)

检查您的API路由。确保没有任何东西与该端点竞争,这将导致对/products的请求出现404错误。这经常发生在我身上。

答案 5 :(得分:0)

findOrFail 方法将检索查询的第一个结果;但是,如果未找到结果,则会抛出 Illuminate\Database\Eloquent\ModelNotFoundException。您可以阅读有关 laravel documentation 的这一部分的更多信息。

Product::findOrFail($id); 此代码未获取产品,因此失败。考虑使用 findfirstget 将返回一个数组。

并且您需要从 $records=\DB::table('products')->Where('category_id','$category_id'); 中删除单引号,因此它会变成 $records=\DB::table('products')->Where('category_id',$category_id);