Как получить и отобразить значение последней строки из нескольких таблиц в отношении один ко многим

Мои две таблицы Member и Deposit имеют отношение один ко многим, один член имеет несколько депозитов в таблице Deposit. Я хочу отображать последнюю запись в таблице депозитов, когда я вызываю всех участников или одного члена.

Это мой стол Member

1.id,
2.name,
3.phone,
4.account_no,
5.ac_open_date,
6.ac_close_date,
7.status,
8........

Мой стол Deposit

1.meber_id,
2.deposit_date,
3.deposit_amount,
4.total_amount,
5..........

Мой код контроллера

$member = Member::with(['Deposit'=>function($query){$query->select('*')->latest('deposit_date')->limit(1);}])->where('status','ready')->get();

если я верну переменную $ member, тогда мои данные аспекта будут отображаться нормально. но когда я показываю это в моем файле лезвия вот так ...

секция лезвия

<td>{{ $member->name }}</td>
 <td>{{ $member->account_no }}</td>
 <td>{{ $member->phone }}</td>
<td>{{ $member->deposit->total_amount}}</td>

когда я вызываю модель Deposit для отображения записей последней строки таблицы deposit, затем отображается ошибка.

"Property [total_amount] does not exist on this collection instance. (View: C:\xampp\htdocs........

что я могу сделать. пожалуйста, помогите мне кто-нибудь.

Преобразование данных с помощью красноречивых аксессоров и мутаторов в Laravel
Преобразование данных с помощью красноречивых аксессоров и мутаторов в Laravel
Laravel поставляется с мощной функцией под названием "Eloquent Accessors and Mutators".
Отношения "многие ко многим" в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel могут быть немного сложными, но с помощью Eloquent ORM и его моделей мы можем сделать это с легкостью. В этой...
0
0
42
2

Ответы 2

Попробуйте {{ $member->deposit->first()->total_amount}}.

$member->deposit возвращает коллекцию всех депозитов участника, даже если он только один.

@ Дэниел Чен Я должен это сделать, но отображать первую запись таблицы Deposit, а не последнюю запись. но мне нужна последняя запись.
Md. Azharul Islam 12.11.2018 07:36

@ Md.AzharulIslam в этом случае использует last() вместо first().

dc115 15.11.2018 00:55
@ Дэниел Чен мои предыдущие все работают нормально, на следующем этапе мне нужно сопоставить некоторые критерии с таблицей Member и методом таблицы / модели Deposit. как я могу добавить еще одно предложение ->where() в метод таблицы / модели Deposit. Пожалуйста, помогите мне
Md. Azharul Islam 25.11.2018 07:50

Я понимаю, что вы обновляете total_amount для каждой транзакции для участника с общим количеством депозитов до сих пор, если это так, я предлагаю добавить новый атрибут для таблицы Member и сохранить это значение в нем, чтобы вы могли легко его получить, и вы могли обновите его при необходимости.

@Amir Helmy Я хочу отображать последнюю запись таблицы таблицы Deposit не только total_amount, но и столбец в зависимости от моей потребности.
Md. Azharul Islam 12.11.2018 07:28

Другие вопросы по теме