次のことを達成するためにモデルを適切にリンクする方法があるかどうかを把握しようとしています:
クライアント -> イニシアチブ -> マイルストーンの 3 つのテーブルがあります。
私が持っているクライアントで:
public $hasMany = array( 'Initiative' );
イニシアチブモデルには次のものがあります。
public $belongsTo = 'Client';
public $hasMany = 'Milestone'
マイルストーンには次の機能があります。
public $belongsTo = 'Initiative';
public $recursive = 2; の使用 クライアントモデルでは、結果のイニシアチブにネストされたマイルストーンを取得できるため、次のようになります...
array(2) {
["Client"]=>
array(3) {
["id"]=>
string(1) "3"
["name"]=>
string(17) "Company"
}
["Initiative"]=>
array(5) {
[0]=>
array(8) {
["id"]=>
string(1) "6"
["client_id"]=>
string(1) "3"
["Milestone"]=>
array(4) {
[0]=>
array(6) {
["id"]=>
string(1) "1"
["initiative_id"]=>
string(1) "6"
}
[1]=>
array(6) {
["id"]=>
string(1) "2"
["initiative_id"]=>
string(1) "6"
}
または短縮形を使用するには:
result
[client]
[initiative]
[milestone]
しかし、便宜上、モデルがイニシアチブにネストされていない独自の配列であるため、モデルがマイルストーンを返すことを望んでいます。そう、
result
[client]
[initiative]
[milestone]
モデルに何らかのカスタム クエリを設定する必要があると思います。これどうやってするの?