2016-05-08 14 views
0

beforeDelete()コールバックでは、関連する情報が必要ですが、取得方法がわかりません。CakePHP3:beforeDelete()コールバックでどのように関連付けるには?

public function beforeDelete($event, $entity, $options) { 

    $agpoiaudio = $this->Agpoiaudios->get($entity->id, [ 
      'contain' => 'Agpois.AgThemes.Sites' 
    ]); 

    if ($agpoiaudio != null) { 
     ... 
     return true; 
    } 

    return false; 
} 

しかし、ケーキは私に次のエラーを送信するために$this->Agpoiaudios->get()原因:私のコールバックはAgpoiaudiosTable.phpに以下の通りです

Error: Table "App\Model\Table\AgpoiaudiosTable" is not associated with "Agpoiaudio"

私は本当にそれを見つけること$this->Agpoiaudios->delete()を呼び出す前に、関連するロードする必要がありますか$entity

答えて

0

いいえ、Table::delete()を呼び出す前に関連するデータを読み込む必要はありません。エラーではありません。 と表示されますが、AgpoiaudioAgpoiaudioに関連付けられていません。つまり、Agpoiaudioのインスタンスで$this->Agpoiaudioにアクセスすることはできません。

あなたがAgpoiaudioのインスタンスですでにしているので、そう、ちょうどもちろんOKああすなわち

$agpoiaudio = $this->get($entity->id, [ 
    'contain' => 'Agpois.AgThemes.Sites' 
]); 
// ... 
+0

、直接Table::get()を呼び出します。わかりました。どうもありがとう – 2ndGAB

関連する問題