无法使用 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);
}

没有选择