Laravel 关系未显示

我有两个模型。其中之一Sales具有以下属性:


protected $visible = [

    'id',

    'client_id',

    'is_paid'

];


public function client()

{

    return $this->belongsTo(Client::class, 'client_id', 'id');

}

第二个是Client:


protected $visible = [

    'id',

    'name'

];


public function sales()

{

    return $this->hasMany(Sales::class, 'client_id', 'id');

}

我以这种方式请求数据:


$getSalewithClient = Sales::where('id', "=", 1)->with(["client"])->get()->toArray

并且只从销售中获取数据:


{

    id: 1,

    client_id: 1,

    is_paid: null 

}

但是缺少客户信息,甚至没有列出密钥。


我不知道为什么,因为起初这是工作,但突然停止工作,我很绝望。


德玛西亚99
浏览 153回答 2
2回答

杨__羊羊

因为你使用$visible的是,关系属性是隐藏的,你需要将它添加到$visible数组中: protected $visible = [    'id',    'client_id',    'is_paid',    'client'  // add relationship name here];这样你就可以看到它的结果。

慕雪6442864

return $this->belongsTo(Client::class, 'client_id', 'id');我认为应该是return $this->belongsTo(Client::class, 'id', 'client_id');第一个参数是外表上的列,第二个参数是当前表上的列。
打开App,查看更多内容
随时随地看视频慕课网APP