誰もこの動作を説明できますか?例では10月CMSクエリビルダがリレーションモデルを取得できません
、二つのモデル:
人、国
人々belongsToの国:
public $belongsTo = [
'country' => [
'Test\TestPlugin\Models\Country',
]
私は、各モデルのエントリを作成し、それを関連付けます。
ティンカー・ダンプがあります:
>>> Test\TestPlugin\Models\People::all();
=> October\Rain\Database\Collection {#926
all: [
Test\Testplugin\Models\People {#928
id: 1,
country_id: 1,
},
Test\Testplugin\Models\People {#930
id: 2,
country_id: 0,
},
],
}
>>> Test\TestPlugin\Models\People::with('country')->get();
=> October\Rain\Database\Collection {#963
all: [
Test\Testplugin\Models\People {#943
id: 1,
country_id: 1,
country: Test\Testplugin\Models\Country {#965
id: 1,
name: "Russia",
},
},
Test\Testplugin\Models\People {#945
id: 2,
country_id: 0,
country: null,
},
],
}
私は人々#1は、国の#1との関係を持っていますが、私は、クエリビルダでこの関係を取得しようとすると、それは空のコレクションを返すことを参照してください。
>>> Test\TestPlugin\Models\People::country()->get();
=> October\Rain\Database\Collection {#970
all: [],
}
>>>
なぜですか?
を試してみてください動的プロパティではなくメソッドのために。私の間違いは、私は多くの項目にメソッドを適用しようとしています。私は1つのエントリを取得し、メソッドを呼び出す必要があります: Test \ TestPlugin \ Models \ People :: find(1) - > country() - > get(); – user2599458