Laravel 直接返回关系(一对多)值而不是其Id的最佳方法是什么?
如何在不进行任何进一步处理的情况下直接返回表示的关系(特定)值 假设我有如下表和关系:Laravel 直接返回关系(一对多)值而不是其Id的最佳方法是什么?,laravel,Laravel,如何在不进行任何进一步处理的情况下直接返回表示的关系(特定)值 假设我有如下表和关系: user id name status_id 1 Jane 0 2 Joe 1 status id title 1 pending 2 accepted 这里的用户属于status,status有很多用户 public function status() { return $this->belongsTo('App\User'); } public function users(
user
id name status_id
1 Jane 0
2 Joe 1
status
id title
1 pending
2 accepted
这里的用户属于status,status有很多用户
public function status()
{
return $this->belongsTo('App\User');
}
public function users()
{
return $this->hasMany('App\Status');
}
我的意思是,相反,这种反应(带着急切的负载):
我在找这个:
{
{"id":"1", "user":"Jane","status":"pending" },
{"id":"2", "user":"Joe", "status":"accepted" }
}
附言:我不确定之前是否有人问过,至少我找不到。这可以通过不同的方式进行询问。您可以定义一个将关系传输到自定义字段的方法,然后对JSON响应隐藏关系本身:
protected $hidden = [ 'userStatus' ];
protected $with = [ 'userStatus' ]; // Always load it eagerly
public function userStatus()
{
return $this->belongsTo('App\Status'); // I'm assuming this is what you actually have
}
public function getStatusAttribute() {
return $this->userStatus->title;
}
protected $appends = [ 'status' ];
您可以定义将关系传输到自定义字段的,然后对JSON响应隐藏关系本身:
protected $hidden = [ 'userStatus' ];
protected $with = [ 'userStatus' ]; // Always load it eagerly
public function userStatus()
{
return $this->belongsTo('App\Status'); // I'm assuming this is what you actually have
}
public function getStatusAttribute() {
return $this->userStatus->title;
}
protected $appends = [ 'status' ];
定义附件是处理此问题的最佳方法。但是我不知道一个用户在一个点上是否有多个状态。。。。我的意思是你真的需要一个配偶关系吗?定义一个附件是处理这个问题的最好方法。但是我不知道一个用户在一个点上是否有多个状态。。。。我是说你真的需要一个夫妻关系吗?