Как определить метод Laravel hasOneThrough для этого сценария?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как определить метод Laravel hasOneThrough для этого сценария?

Сообщение Anonymous »

У меня есть модель заказа, которая принадлежит модели портфеля, модель портфеля принадлежит модели FinancialGoal, а модель FinancialGoal принадлежит модели пользователя.
Модель заказа имеет эту финансовую цель. метод:
public function financialGoal()
{
return $this->hasOneThrough(FinancialGoal::class, Portfolio::class, 'id', 'id',
'portfolio_id', 'financial_goal_id');
}

В чем может быть причина того, что мое определение пользовательского метода не дает ожидаемого результата:
public function user()
{
// return $this->financialGoal->user(); // works
// return $this->financialGoal->belongsTo(User::class); // works
return $this->hasOneThrough(User::class, FinancialGoal::class, 'id', 'id', 'portfolio_id',
'user_id'); // returns Attempt to read property "id" on null
}

Мне также хотелось бы знать, как определить (методorders) обратный этому методу в модели пользователя, который у меня сейчас не выдает ошибок, но ничего не возвращает:public function orders()
{
return $this->hasManyThrough(Order::class, Portfolio::class,'financial_goal_id',
'portfolio_id', 'id', 'id');
}

Этот метод возвращает:
Illuminate\Database\Eloquent\Collection {#16085
#items: []
#escapeWhenCastingToString: false
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... s-scenario
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»