在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
答案 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);
此代码未获取产品,因此失败。考虑使用 find
或 first
,get
将返回一个数组。
并且您需要从 $records=\DB::table('products')->Where('category_id','$category_id');
中删除单引号,因此它会变成 $records=\DB::table('products')->Where('category_id',$category_id);
。