Скажем, у меня есть две таблицы, как это:Eloquent ORM запрашивая отношения
users:
- id
- username
profiles:
- user_id
- name
Использование DataMapper ORM CodeIgniter Я мог бы написать запрос следующим образом:
$users = new User();
$users->where_related('profile', 'name', 'Diego');
$users->get();
и он будет возвращать пользователей с имя профиля Diego. Как я могу достичь этого, используя Eloquent ORM? Я знаю, как это сделать, используя беглый (чистый sql), но не знаю, как это сделать, используя красноречивый.
Редактировать: Я решил эту проблему, используя этот запрос, но он чувствует себя грязным, есть ли лучший способ сделать это?
$users = Users::join('profiles', 'profiles.user_id', '=', 'user.id')->where('profiles.name', 'Diego')->get();
С вашим ответом я написал этот вопрос: Пользователь :: с ('profile') -> где ('name', «Diego») -> get(); Но это возвращает эту ошибку: SQLSTATE [42S22]: Столбец не найден: 1054 Неизвестный столбец 'name' в 'where clause' (SQL: выберите * у пользователей, где name = ?) (Привязки: array (0 => 'Diego',)) –
Все запросы здесь будут выполняться в таблице Users, а не в отношении профиля. Это не то, что хочет OP. –