我需要在我的模型中设置一个默认的where条件。所以实际上我必须在all select查询中设置它。查询方式:
->where('status','active')
chhkpiq41#
您可以在模型中使用laravel范围(本地范围或全局范围):全局范围示例:在model.php中:
protected static function boot() { parent::boot(); static::addGlobalScope('status', function (Builder $builder) { $builder->where('status', 'active'); }); }
本地范围示例:在model.php中
public function scopeIsActive($query) { return $query->where('status', 'active'); }
在控制器中:
Model::isActive()->get();
来源
camsedfj2#
你应该试试这个:您的型号:
class News extends Eloquent { public function scopeStatus($query) { return $query->where('status', '=', 1); } }
您的控制器:
$news = News::status()->get();
ia2d9nvy3#
您可以使用全局范围:https://laravel.com/docs/5.7/eloquent#global-范围把它写在你想要查询的模型中
/** * The "booting" method of the model. * * @return void */ protected static function boot() { parent::boot(); static::addGlobalScope('status', function (Builder $builder) { $builder->where('status', 'active'); }); }
3条答案
按热度按时间chhkpiq41#
您可以在模型中使用laravel范围(本地范围或全局范围):
全局范围示例:
在model.php中:
本地范围示例:
在model.php中
在控制器中:
来源
camsedfj2#
你应该试试这个:
您的型号:
您的控制器:
ia2d9nvy3#
您可以使用全局范围:https://laravel.com/docs/5.7/eloquent#global-范围
把它写在你想要查询的模型中