В моей модели у меня есть:
//UserAddress.php
protected $with = ['address'];
public function address()
{
return $this->morphOne('App\Address', 'addressable');
}
//User.php
public function userAddress()
{
return $this->hasOne(UserAddress::class);
}
//Address.php
public function addressable()
{
return $this->morphTo();
}
Но когда я звоню dd(auth()->user()->userAddress))
Адрес адреса не загружается. Это все еще ноль.
#attributes: array:4 [
"id" => "1"
"user_id" => "1"
"created_at" => "2018-11-13 10:11:54"
"updated_at" => "2018-11-13 10:11:54"
]
#original: array:4 [
"id" => "1"
"user_id" => "1"
"created_at" => "2018-11-13 10:11:54"
"updated_at" => "2018-11-13 10:11:54"
]
#changes: []
#casts: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: array:1 [
"address" => null
]
#touches: []
+timestamps: true
Однако, с dd(auth()->user()->userAddress()->get()))
отношения загружены.
В чем проблема?
Редактировать
Это супер странно. Если я напишу auth()->user()->userAddress->address
, я получу ноль (так не должно быть). И когда я снимаю protected $with = ['address'];
auth()->user()->userAddress->address
, я получаю правильную модель.