0

ここで私が特に馬鹿げていると感じてください。

国テーブルへの外部キーとしてフィールドを持つ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_dumponを使用$candidate->countryするとオブジェクトが返されることが示唆されるのに、オブジェクトとしてアクセスできないのはなぜですか?

編集:

候補コントローラーは、次のように admin に名前空間が割り当てられます。

namespace App\Controllers\Admin;

コントローラーの宣言の一部として、次のようにしています。

use App\Models\Candidate, App\Models\Manufacturer, App\Models\Make, App\Models\Country;

各モデルの名前空間は

namespace App\Models

関係を正しく設定できましたか?

ありがとう

4

0 に答える 0