感觉我在这里特别愚蠢,但它让我发疯了。
我有一个candidate
表,该country_id
字段作为国家表的外键。候选人有一个关联国家。
候选模型的关系定义为:
public function country()
{
return $this->belongsTo('App\Models\Country', 'country_id');
}
Country 模型具有以下特点:
public function candidate()
{
return $this->hasMany('App\Models\Candidate');
}
在我的列表页面上,我Candidate::with('country')->paginate(5)
用来在屏幕上提供候选人列表。当我来显示我使用的国家/地区时:
$candidate->country->country
但这会返回错误:
Trying to get property of non-object
但是,我可以使用
$candidate->country['country']
使用var_dump
on$candidate->country
表示返回了一个对象,那么为什么我不能将它作为一个对象访问呢?
编辑:
候选控制器的命名空间为 admin,如下所示:
namespace App\Controllers\Admin;
作为控制器声明的一部分,我有:
use App\Models\Candidate, App\Models\Manufacturer, App\Models\Make, App\Models\Country;
每个模型都有命名空间
namespace App\Models
我是否已经正确建立了关系?
谢谢