首页 > 解决方案 > Laravel 属于关系获取属性问题

问题描述

我有属于关系:

class Yetkiliservis extends Model
{
    protected $table = 'yetkiliservis';
    protected $guarded=[];

    public function bolge(){
        return $this->belongsTo(Bolgeler::class);
    }

}

当我将模型转换为数组时,一切都是正确的。它显示了关系。

$yetkiliservisler = Yetkiliservis::with('bolge')->get();
dd($yetkiliservisler[0]->toArray());

结果 :

array:22 [▼
  "id" => 1
  "vergi_no" => "1"
  "yerel_adi" => "1"
  "bolge" => array:6 [▼             <------------------------------------
    "id" => 1
    "bolge_adi" => "İSTANBUL"
    "ad_soyad" => "istanbul"
    "email" => "istanbul@mail.com"
    "created_at" => "2020-04-24 15:53:31"
    "updated_at" => "2020-04-24 15:53:31"
  ]
  "yetkili_adi" => "1"
]

但是,当我尝试获取该属性时,它显示为空。

$yetkiliservisler = Yetkiliservis::with('bolge')->get();
dd($yetkiliservisler[0]->getAttributes());

结果 :

array:22 [▼
  "id" => 1
   "vergi_no" => "1"
  "yerel_adi" => "1"
  "bolge" => null          <--------------------------------
  "yetkili_adi" => "1"

]

标签: laravellaravel-6laravel-query-builder

解决方案


首先,您像这样更改名称

public function bolges(){
    return $this->hasMany(Bolge::class,'yetkiliservi_id','id');
}

执行此命令后

composer dump-autoload

然后首先检查php artisan tinker;关系是否正确?

然后试试这个

$yetkiliservisler[0]->bolges;

希望对你有帮助


推荐阅读