Laravel Попытка получить свойство 'имя' необъекта с отношением и запросом - PullRequest
0 голосов
/ 01 мая 2020

Когда я пытаюсь выполнить запрос по отношению следующим образом, я получаю сообщение об ошибке При попытке получить свойство 'имя' не-объекта

$billing = ServiceProviderBilling::with(['user' => function ($query) {
            $query->where('parent_id', auth()->id());
        }])->get();

Нет ошибки, если Я использую

$billing = ServiceProviderBilling::with(['user'])->get();

На мой взгляд

@foreach($billing as $bill)
    {{ $bill->user->name }}
@endforeach

Отношения

public function serviceProviderBillings()
    {
        return $this->hasMany(ServiceProviderBilling::class);
    }

и

public function user()
    {
        return $this->belongsTo(User::class);
    }

Как мне это решить?

1 Ответ

1 голос
/ 01 мая 2020

Это означает, что $ bill-> user возвращает null. у некоторого счета нет пользователя. Если вы хотите показать счета без пользователя, вы можете использовать метод whereHas:

ServiceProviderBilling::with('user')
                      ->whereHas('user', function (Builder $query) { 
                          $query->where('parent_id', auth()->id()); 
                      })->get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...