Использование глобальных областей Model для упорядочения (с объединениями) и firstOrCreate - PullRequest
0 голосов
/ 15 декабря 2018

Я использовал модель addGlobalScopes(), чтобы установить порядок по умолчанию для одной из моих моделей:

public static function boot()
{
    parent::boot();
    /** Some code */
    static::addGlobalScope('order', function (Builder $builder) {
        $builder->select('this_table.*') //this is the same table as the model
            ->leftJoin('table2', 'table2.table_id', '=', 'this_table.id')
            ->groupBy('this_table.id')
            ->orderBy('table2.year', 'DESC');
    });
    /** Some other code */
}

Но у this_table и table2 есть столбец с одинаковым именем name.Поэтому, когда я пытаюсь MyModel::firstOrCreate(), я получаю:

Нарушение ограничения целостности: 1052 «Имя» столбца, где предложение неоднозначно

Мне нравится подход установкиПорядок глобально, для всех экземпляров модели, но также как и функциональность firstOrCreate: (.

Я пытался:

MyModel::firstOrCreate(['this_table.name' => $request->input('name')]);

, но это не работает.

У меня вопрос, как установить глобальный порядок модели, не теряя других функций Laravel?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...