无法使用 Laravel Eloquent ORM 获取关系数据
Can not get relationship data using Laravel Eloquent ORM
我正在与 Laravel 5.4 合作。我正在使用 Eloquent ORM。我创建了 table 作为国家和州。两者都显示如下:
国家Table:
状态 Table :
现在,我写了两个方法来设置国家和国家之间的关系table。
国家模式:
public function states()
{
return $this->hasMany('App\Models\Masters\State')->select('*');
}
状态模型:
public function country()
{
return $this->belongsTo('App\Models\Masters\Country')->select('name as country_name');
}
现在,我将创建编辑功能,这样我就无法获取国家/地区名称。
我已将查询写为
$state = State::with('country')->find($id);
return Response($state);
在这里,我只得到州数据和国家数据为空。
那么我应该更改哪些内容才能获取州和国家/地区数据?
你不应该在你的人际关系中使用 select
。当您仅使用国家名称时 Laravel 将无法 link 与您所在的州一起使用,因此它不会起作用。
你应该这样定义你的关系:
public function country()
{
return $this->belongsTo(\App\Models\Masters\Country::class);
}
public function states()
{
return $this->hasMany(\App\Models\Masters\State::class);
}
没有选择
我正在与 Laravel 5.4 合作。我正在使用 Eloquent ORM。我创建了 table 作为国家和州。两者都显示如下:
国家Table:
状态 Table :
现在,我写了两个方法来设置国家和国家之间的关系table。
国家模式:
public function states()
{
return $this->hasMany('App\Models\Masters\State')->select('*');
}
状态模型:
public function country()
{
return $this->belongsTo('App\Models\Masters\Country')->select('name as country_name');
}
现在,我将创建编辑功能,这样我就无法获取国家/地区名称。
我已将查询写为
$state = State::with('country')->find($id);
return Response($state);
在这里,我只得到州数据和国家数据为空。
那么我应该更改哪些内容才能获取州和国家/地区数据?
你不应该在你的人际关系中使用 select
。当您仅使用国家名称时 Laravel 将无法 link 与您所在的州一起使用,因此它不会起作用。
你应该这样定义你的关系:
public function country()
{
return $this->belongsTo(\App\Models\Masters\Country::class);
}
public function states()
{
return $this->hasMany(\App\Models\Masters\State::class);
}
没有选择