Я использовал модель 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?