получить данные из модели с условием laravel 5.7 - PullRequest
0 голосов
/ 24 октября 2018

У меня есть Users_group модель в моем проекте Laravel.

Код:

<?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();

Iнеобходимо поместить условие в файл модели, который заставляет модель возвращать данные каждый раз, когда я вызываю User_group::get(), возвращать их, когда условие внутри модели.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Попробуйте это с помощью scope в модели

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 scopeGetGroupData($query,$value,$opertor = '>')
        {
            return $query->where('group_id', $opertor, $value);
        }

}

получить данные в контроллере, как это вы можете также передать параметр в методе

App\Users_group::GetGroupData($value)->get();
0 голосов
/ 24 октября 2018

Для этого можно использовать области запросов .Области запроса позволяют добавлять глобальное ограничение к модели.

В вашем случае вы можете добавить к своей модели следующий метод загрузки:

protected static function boot()
{
    parent::boot();

    static::addGlobalScope('groupOver5', function (Builder $builder) {
        $builder->where('group_id', '>', 5);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...