laravel动态范围不起作用

时间:2018-02-06 06:27:40

标签: php laravel scope

我尝试根据他们的状态获取我的类别,并在我的类别模型中有scope

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

我的控制器就像:

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

我的路线如下:

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

但是我得到了空白页面。有什么想法吗?

更新

如果我使用$findercategories = Category::ofStatus(1)->get();我得到了我想要的结果,但它是静态的而不是动态的:\

1 个答案:

答案 0 :(得分:1)

statuses表中获取与搜索到的值相关的ID并使用ID获取类别

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

并且在你的控制器中你可以这样做

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