ここで私が特に馬鹿げていると感じてください。
国テーブルへの外部キーとしてフィールドを持つcandidate
テーブルがあります。country_id
候補者には 1 つのリンクされた国があります。
Candidate モデルには、次のように定義された関係があります。
public function country()
{
return $this->belongsTo('App\Models\Country', 'country_id');
}
また、国モデルには次のものがあります。
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
関係を正しく設定できましたか?
ありがとう