dongshiliao7990
2018-02-06 06:27
浏览 9
已采纳

laravel动态范围不起作用

I try to get my categories base on their status and i have scope below in my category model:

public function scopeOfStatus($query, $status)
{
     return $query->where('status_id', $status);
}

And my controller is like:

public function finder() {
    $findercategories = Category::OfStatus('Active')->get();
    return response()->json($findercategories);
}

My route is like:

Route::get('/finder','frontend\SearchController@finder');

But i get blank page as result. Any idea?

update

if i use $findercategories = Category::ofStatus(1)->get(); i get the result that i want but it's static not dynamic :\

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doushajian2018 2018-02-06 06:53
    已采纳

    Get the Id's from the statuses table with respect to the searched value and use the Id's to get the Category

    public function scopeOfStatus($query, $status)
    {
        $statuses = Status::where('title', $status)->pluck('id'); // Or relevant column name
        return $query->whereIn('status_id', $statuses);
    }
    

    and in your Controller you could do so

    public function finder() {
        $findercategories = Category::ofStatus('Active')->get();
        return response()->json($findercategories);
    }
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题