Я получил этот запрос, он извлекает результаты из моей базы данных на основе отношений.Запрос работает нормально, но он получает первую запись из базы данных / таблицы, а не первое значение массива.
Как это исправить?
$motor = Motor::query()
->where([
['effect_id', '=', $request->effect_id],
['poles', '=', $request->poles],
['voltage_id', '=', $request->voltage_id],
['active', '=', 1],
])
->whereHas('MotorSize', function (Builder $query) {
$query->whereIn('mounting', ['B5', 'B14', 'B34', 'B35']);
})
->firstOrFail();
Я пробовал разныетакие вещи, как:
Добавление orderBy к модели Motor и создание поля «приоритет» в моей базе данных, давая каждому число от 1 до 100: (Я действительно думал, что это будет работать, но он все еще захватываетпервая запись из таблицы)
public function MotorSize()
{
return $this->belongsTo('App\MotorSize')->orderBy('priority', 'ASC');
}
Я тоже пробовал что-то подобное, но это беспорядок, и он так и не заработал:
$query->where(function ($query) {
$query->where('mounting', 'like', 'B5');
})
->orWhere(function($query) {
$query->where('mounting', 'like', 'B14');
})
->orWhere(function($query) {
$query->where('mounting', 'like', 'B34');
})
->orWhere(function($query) {
$query->where('mounting', 'like', 'B35');
});
Любые предложения будут приветствоваться :)