Как получить первую запись из записи в отношении Laravel? - PullRequest
0 голосов
/ 26 сентября 2019

Я получил этот запрос, он извлекает результаты из моей базы данных на основе отношений.Запрос работает нормально, но он получает первую запись из базы данных / таблицы, а не первое значение массива.

Как это исправить?

            $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');    
});

Любые предложения будут приветствоваться :)

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