php - 从条件 laravel 5.7 的模型中获取数据
问题描述
我的 Laravel 项目中有Users_group模型。
代码:
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Model;
class Users_group extends Model
{
use Notifiable;
protected $table = 'users_groups';
protected $fillable = ['id', 'user_id', 'group_id', 'created_at', 'updated_at'];
public function getGroupData()
{
return $this->hasOne('App\Group','id','group_id');
}
}
当我想从这个模型中获取数据时,我使用我的自定义方法:
$data = App\Users_group ::get();
它工作得很好
我想从条件不是这样的模型中获取数据:
$data = App\Users_group::where('group_id','>',5)->get();
我需要将条件放在模型文件中,这使得模型在每次调用User_group::get()
返回数据时返回模型内部的条件。
谢谢!
解决方案
您可以使用查询范围来实现此目的。查询范围允许您向模型添加全局约束。
在您的情况下,您可以将以下引导方法添加到您的模型中:
protected static function boot()
{
parent::boot();
static::addGlobalScope('groupOver5', function (Builder $builder) {
$builder->where('group_id', '>', 5);
});
}
推荐阅读
- angular - Angular2:单击按钮将文本框条目添加到跨度
- html - Django 表单提交重定向问题
- r - 用另一个数据框中匹配行的值替换缺失的数据
- android-studio - ImageView' 是多余的
- firebase - 如何在 Firebase Crashlytics 中搜索崩溃?
- dart - 如何在颤动的http.MultipartRequest请求上上传文件时获取进度事件
- php - 将对象保存到会话 - 如何像以前一样从会话中获取对象?
- python - 从python中的序列列表中创建一个矩阵
- bash - 成功运行 docker-compose 后 Bash 退出
- android - 静态 SharedPreferences 变量上的 NullPointerException