2014-12-17 3 views
3

У меня есть таблица Registrationrequests, где у меня есть course_id и user_id и некоторые другие поля.Выберите таблицу на основе выбора результата из другой таблицы

$users_id = Registrationrequest::where('course_id', $query_course_user)->where('registered', 1)->get(); 

Из вышеприведенного query это дает мне массив результата. Но мне нужно взять данные этих user_id из другой таблицы Users. Я использую Laravel. Модели таблицы: Registrationrequest и User

Как я могу получить информацию о пользователе из приведенного выше результата? Я не так хорош в Joins. Любой совет? whereHas метод

ответ

4

Используйте красноречив в:

$courseId = Request::get('course_id'); 

$users = User::whereHas('registrationRequests', function($query) use ($courseId) 
{ 
    $query->where('course_id', $courseId)->where('registered', 1); 
}); 

Это предполагает, что вы установили правильные отношения в вашей User модели. Если нет, добавьте этот метод в вашей модели пользователя:

public function registrationRequests() 
{ 
    return $this->hasMany('Registrationrequest'); 
} 
+0

Я попытался это: '$ query_course_user = Request :: получить ('course_id'); если ($ query_course_user! = NULL) { $ пользователей = User :: whereHas ('registrationrequests', функция ($ запроса) { $ query-> где ('course_id', $ query_course_user) -> где (» зарегистрировано ', 1); }); } ' Но показывает $ query_course_user как неопределенную переменную! – user1012181

+0

@ user1012181 - Вы должны «использовать» его. См. Мое редактирование. –

+0

Ошибка: 'Вызов неопределенной метод Осветите \ Database \ Query \ Builder :: registrationrequests()' Это 'registrationrequests' еще одна таблица – user1012181

Смежные вопросы