Laravel Версия: 6.13.1, PHP Версия: 7.2.20, Драйвер базы данных и версия: 10.3.16-MariaDB.
При использовании в отношениях, результат не является объектом.
Результат $ family - это объект
ProfileModel.php :
public function getFamilyAttribute()
{
$arr = [];
$family_status = MsFamilyStatus::get();
if ( $family_status->count() ) {
foreach ($family_status as $key => $value) {
$family = $this->attr_family
// ->where('ms_family_status_id', $value->id )
->first();
$arr[] = $family->name; // result is object
}
}
return collect( $arr );
}
public function attr_family()
{
return $this->hasMany('App\Models\ProfileAttrFamily', 'profile_id');
}
Result $ family - это не объект, а массив
ProfileModel.php :
public function getFamilyAttribute()
{
$arr = [];
$family_status = MsFamilyStatus::get();
if ( $family_status->count() ) {
foreach ($family_status as $key => $value) {
$family = $this->attr_family
->where('ms_family_status_id', $value->id )
->first();
// $arr[] = $family->name; // error non object
$arr[] = $family['name']; // result is array, why result is array not object?
}
}
return collect( $arr );
}
public function attr_family()
{
return $this->hasMany('App\Models\ProfileAttrFamily', 'profile_id');
}
Controller :
print_r( $model->family );
как результаты могут быть массивом, когда оператор where добавлено?