无法使用Laravel Eloquent ORM获取关系数据

时间:2017-02-17 12:46:46

标签: laravel laravel-5 eloquent laravel-5.4 laravel-eloquent

我正在使用Laravel 5.4。我正在使用Eloquent ORM。我创建了表格作为国家和国家。两者都是如下的错误:

国家表:

enter image description here

州表:

enter image description here

现在,我已经编写了两种方法来设置States和Countries表之间的关系。

国家模型:

public function country()
{
    return $this->belongsTo('App\Models\Masters\Country')->select('name as country_name');
}

州模式:

$state = State::with('country')->find($id);
return Response($state);

现在,我将创建编辑功能,因此无法获得国家/地区名称。

我已将查询编写为

{{1}}

在这里,我只获得状态数据和国家/地区数据。

那么我应该怎么做才能获得州和国家数据呢?

1 个答案:

答案 0 :(得分:3)

您不应该在关系中使用select。当你只使用国家名称Laravel赢得无法将其与你的州联系起来时,它就不会起作用。

你应该像这样定义你的关系:

public function country()
{
    return $this->belongsTo(\App\Models\Masters\Country::class);
}

public function states()
{
    return $this->hasMany(\App\Models\Masters\State::class);
}

没有选择