Ошибка Laravel с кодом строки в двойной таблице отношений построителя запросов

Привет, у меня неожиданный '(', ожидая '{' в

это мой код в клинке:

 @foreach($invoices as $invoice)
 {{$invoice->userinvoiceperson->(function($userinvoiceperson) {return $userinvoiceperson->user->name;})}}
 @endforeach

Это мой код в контроллере:

$invoices = Invoice::with(['userinvoiceperson' => function($query){
             $query->with('user')->get();
         }])->with('userinvoicesubaccount')->where('validate','=',0)->whereBetween('updated_at', [$date1, $date2])->get();

Структура отношений

счета-фактуры в отношении лиц с идентификатором person_id с функцией userinvoiceperson. лица, связанные с пользователем в user_id с функцией пользователя.

Где я пропустил? Спасибо..

РЕДАКТИРОВАТЬ : Вместо этого этот линейный код отлично работает

{{$account->subaccount->sum( function($subaccount) { return $subaccount->subaccountinvoice->sum('amount');})}}
->(, кажется, вызывает ошибку. Вам не хватает имени функции?
Tim Lewis 09.11.2018 16:37

Не уверен, что вы здесь пытаетесь сделать, но это не похоже на правильный код для представления.

Devon 09.11.2018 16:37

Спасибо за проявленный интерес, я отредактировал сообщение, чтобы вы увидели, что у меня работает похожий линейный код.

yassine j 09.11.2018 16:41

@Devon Я использую его, и он работает, я получил нужную сумму ..

yassine j 09.11.2018 16:44

Что ж, может работать, но не очень читаемо. У вас несколько дополнительных учетных записей? Если да, то почему он назван субсчетом? То же самое и с userinvoiceperson.

Devon 09.11.2018 16:46

@Devon да, перед этой строкой используйте foreach ($ accounts as $ account), потому что у меня несколько учетных записей. и для каждой учетной записи у меня есть несколько дополнительных учетных записей.

yassine j 09.11.2018 16:48

Может быть, это языковой барьер, но я здесь именно об этом. Ваши отношения должны называться «вспомогательные учетные записи», а не «вспомогательные учетные записи», потому что у вас их несколько. Не очень удобно иметь коллекции с единственным именем.

Devon 09.11.2018 16:50

вы не добавляли какой-либо метод, как во втором примере, у вас есть sum

Niklesh Raut 09.11.2018 16:53

@ C2486 да, потому что на этот раз мне не нужна сумма, мне просто нужно значение простой ячейки ..

yassine j 09.11.2018 16:54

@ Девон, хорошо, спасибо, сэр, я пытаюсь найти, где я пропустил.

yassine j 09.11.2018 16:54

@yassinej, так у вас несколько "userinvoiceperson" или только один? Вот почему я подчеркнул свой предыдущий момент. Если у вас их несколько, какую ценность вы хотите? Если у вас только один, то вам не нужна функция типа «карта / сокращение» для получения значения.

Devon 09.11.2018 16:55

Можете ли вы поделиться образцами вывода для $invoice->userinvoiceperson и что вы ищете?

Niklesh Raut 09.11.2018 16:56

Еще раз спасибо за ваш интерес. я редактировал пост с полной информацией. мой дд ($ invoices) работает. У меня правильные отношения со счетами / лицами / пользователями

yassine j 09.11.2018 17:01

Это не отвечает ни на один из наших вопросов. Вы также неправильно загружаете далекие отношения. Вы никогда не должны использовать get () в закрытии построителя запросов. К сожалению, я не могу больше уделять внимания вашей проблеме. Я думаю, вам нужно потратить больше времени на чтение документации laravel и изучение типов данных, с которыми вы имеете дело.

Devon 09.11.2018 17:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
14
36
1

Ответы 1

Мне пришлось написать

{{$invoice->userinvoiceperson->user->name}}

Спасибо

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