Как сделать запрос из базы данных, когда у меня есть разные внешние ключи? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь запросить данные из моей базы данных и передать результаты в представление с именем events, проблема в том, что один из моих запросов всегда будет возвращать один и тот же результат, поскольку в условии where значение $events_id всегда один и тот же.Есть ли лучший способ сделать запрос?Лучшая логика?

Этот код от моего контроллера называется EventController:

public function index()
{
    $firm_id = DB::table('firms')->where('user_id', auth()->id())->value('id');
    $events_id = DB::table('events')->where('firm_id', $firm_id)->value('id');
    $events = DB::table('events')->where('firm_id', $firm_id)->get()->toArray();
    $actual_events = DB::table('actual_events')->where('event_id', $events_id)->get()->toArray();
    return view('events',['events' => $events,'actual_events' => $actual_events]);
}

Поскольку $events_id одинаков каждый раз, $actual_events будет содержать только первыйрезультат.

На загруженном мною изображении показана проблема, первые три столбца моей таблицы в порядке.Начиная с четвертого они содержат повторяющиеся значения:

Problem illustration

Ответы [ 2 ]

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

Как я полагаю, вам нужно что-то вроде этого:

$ event_ids = DB :: table ('events') -> where ('firm_id', $ firm_id) -> pluck ('id ');

$ actual_events = DB :: table (' actual_events ') -> whereIn (' event_id ', $ event_ids) -> get () -> toArray ();

или напишите подробнее о своей проблеме, и я постараюсь вам помочь.

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

Вы только что сказали, что ваши таблицы связаны друг с другом.в этом случае лучше использовать eloquent для этого, сначала вы должны ввести отношения в модели каждой таблицы следующим образом:

class User extends Authenticatable{
    public function cities()
    {
        return $this->hasmany('App\City'); //you should type your relation
    }
}

для отношений вы можете использовать эту ссылку: отношения laravel

после этого, когда вы сжимаете переменную $user в своем представлении, вы можете использовать этот синтаксис для получения отношения значения города к этому пользователю: $user->cities;.

...