У меня есть модель заказа, которая принадлежит модели портфеля, модель портфеля принадлежит модели 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
Как определить метод Laravel hasOneThrough для этого сценария? ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение