2016-04-20 4 views
1

у меня есть две таблицы базы данных, расходов и доходы и я создал представление MySQL, сделок, которая в основном является UNION между двумя таблицами, выбором поля Я заинтересован в .Использования Laravels красноречивы представления базы данных

The сделок вид содержит следующие столбцы:

  • TRANSACTION_ID
  • user_id
  • количество
  • примечание
  • transaction_type
  • updated_at
  • created_at

Я создал Красноречивый модель для представления, называемые сделки.

Проблема заключается в том, когда я хочу получить транзакции на основе определенных критериев. . Я хочу получить все транзакции для пользователя. Обычно, если транзакции были таблицей, я бы определил отношение внешнего ключа, и я просто позвонил бы $user->hasMany('App\Models\Transaction').

Поскольку внешние виды невозможно просмотреть, я попытался использовать метод «где»: Transaction::where('user_id', $user->id). Этот запрос ничего не возвращает, ни другие запросы, которые я тестировал. Единственный метод, который возвращал данные, - Transaction::all(), но это не очень помогает.

Что я делаю неправильно?

+0

ли вы хотите получить информацию о пользователе с запросом? –

+0

Нет, я хочу получить все транзакции с определенным user_id. Предположим, что идентификатор пользователя равен 3, эквивалентным запросом будет 'SELECT * FROM транзакций WHERE user_id = 3'. –

ответ

3

Ибо где заявление в красноречивых вы должны закончить с ГЭТ, попробуйте следующее:

$transactions = Transaction::where('user_id', $user->id)->get(); 
+0

Вот оно, спасибо! –

+1

Transaction :: where ('user_id', $ user-> id) возвращает связь между таблицами и Transaction :: where ('user_id', $ user-> id) -> get() возвращает коллекцию объектов :-) – m0z4rt

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