Laravel模型函数最好的疙瘩
Laravel model function best prickets
我是 Laravel 的新人,我有如下问题
我在类别模型查询中检查类别是否存在
如下
public function scopeIsExist($query ,$id)
{
return $query->where(['deleted' => 1, 'id' => $id])->orderBy('id', 'DESC')->first();
}
我的控制器是
public function edit($id)
{
$dataView['category'] = Category::IsExist($id);
if(!$dataView['category'])
{
return view('layouts.error');
}else{
$dataView['title'] = 'name';
$dataView['allCategories'] = Category::Allcategories()->get();
return view('dashboard.category.edit')->with($dataView);
}
}
我的问题是当我使用方法 isEXIST
时,如果没有找到它,它不会重定向到错误页面,但是我删除了 ISEXIST
并将其替换为如下
$dataView['category'] = Category::where(['deleted' => 1, 'id' => $id])->orderBy('id', 'DESC')->first();
效果很好。
谁能帮帮我
那是因为本地范围应该 return \Illuminate\Database\Eloquent\Builder
的一个实例。您应该删除作用域中的 first()
并将其放入控制器中。
像这样重新定义范围:
public function scopeIsExist($query ,$id)
{
return $query->where(['deleted' => 1, 'id' => $id])->orderBy('id', 'DESC');
}
在您的控制器编辑方法中:
$dataView['category'] = Category::IsExist($id)->first();
您可以查看本地范围的文档 https://laravel.com/docs/8.x/eloquent#local-scopes
我是 Laravel 的新人,我有如下问题 我在类别模型查询中检查类别是否存在 如下
public function scopeIsExist($query ,$id)
{
return $query->where(['deleted' => 1, 'id' => $id])->orderBy('id', 'DESC')->first();
}
我的控制器是
public function edit($id)
{
$dataView['category'] = Category::IsExist($id);
if(!$dataView['category'])
{
return view('layouts.error');
}else{
$dataView['title'] = 'name';
$dataView['allCategories'] = Category::Allcategories()->get();
return view('dashboard.category.edit')->with($dataView);
}
}
我的问题是当我使用方法 isEXIST
时,如果没有找到它,它不会重定向到错误页面,但是我删除了 ISEXIST
并将其替换为如下
$dataView['category'] = Category::where(['deleted' => 1, 'id' => $id])->orderBy('id', 'DESC')->first();
效果很好。 谁能帮帮我
那是因为本地范围应该 return \Illuminate\Database\Eloquent\Builder
的一个实例。您应该删除作用域中的 first()
并将其放入控制器中。
像这样重新定义范围:
public function scopeIsExist($query ,$id)
{
return $query->where(['deleted' => 1, 'id' => $id])->orderBy('id', 'DESC');
}
在您的控制器编辑方法中:
$dataView['category'] = Category::IsExist($id)->first();
您可以查看本地范围的文档 https://laravel.com/docs/8.x/eloquent#local-scopes