繁体   English   中英

模型 [App\Products] Laravel 没有查询结果

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

在 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

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

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

在这里你弄错了'$category_id' ,删除那个单引号。

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

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

**你应该改变表格**

 $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

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

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

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

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

protected $table = 'products';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM