Есть ли способ конвертировать этот RAW-запрос в Eloquent? - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть эта строка запроса, которая работает на MySQL через localhost, и я хочу использовать ее на моем Laravel, но я не знаю, как преобразовать или перевести мой код в Eloquent.

2 модели взаимосвязаныдруг с другом.это то, что я пробовал с моим кодом.

Статусы

public function reqs(){
        return $this->belongsTo('App\Reqs','reqs_id','id');
}

Reqs

public function statuses()
{
    return $this->hasMany('App\Statuses','reqs_id','id');
}

Это то, чтоЯ пытался, и он не может получить то, что я хочу

$reqs = Statuses::with('reqs')->
where('status','=',$status)->
where('user_id','=',auth()->user()->id)->get();

Это с другой стороны работает

DB::select('SELECT * from `statuses`, `reqs`
            WHERE `statuses`.`status` = ?
            AND `reqs`.`id` = `statuses`.`reqs_id`
            AND `reqs`.`user_id` = ?
            ', [$status,auth()->user()->id]);

я получил то, что ожидал, но я хочу знать, если есть красноречивый способ,БЛАГОДАРНОСТЬ.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы не можете выбрать одну из двух таблиц с Eloquent, вам нужно явно присоединиться к другой таблице.Вам не нужна часть select() этого запроса, но вам, вероятно, следует четко указать, какие поля вы хотите получить, чтобы получить ожидаемые данные.

Status::select('statuses.*')
    ->join('reqs', 'reqs.id', '=', 'statuses.reqs_id')
    ->where('statuses.status', $status)
    ->where('reqs.user_id', auth()->id())
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...