2016-07-19 9 views
2

CakePHP 2.8でHasAndBelongsToManyの関係を解除する方法は?私はタスクモデル(N:Mの関係)に接続されているこのモデルを持っています。CakePHP 2のHasAndBelongsToManyをアンバインドしてもモデルのバインドが解除されない

class Date extends AppModel 
{ 

    public $name = 'Date'; 
    public $displayField = 'rdate'; 
    public $actsAs = array('Containable'); 
    public $hasAndBelongsToMany = array('Task' => array('className' => 'Task')); 

    public function getCurrentDate() 
    { 
     return $this->find('first', 
      array(
       'conditions' => array(
        'Date.rdate' => date('Y-m-d') 
       ) 
      ) 
     ); 
    } 

} 

私はgetCurrentDate()機能で、この関係をバインド解除したいと思いますが、この機能でもfind()$this->recursive = -1;は動作しません。 Dateモデルからのレコードは1つだけ必要ですが、findはこのモデルとの関係ですべてのタスクを返します。

編集#1:でもアンバインドモデルオンザフライでは動作しません:

$this->unbindModel(
    array('hasAndBelongsToMany' => array('Task')) 
); 

はまだ、関連するモデルデータを返します。

答えて

0

unbindModel()を使用してオンザフライでモデルをアンバインドすることができます。詳細については、これらのドキュメントをご覧ください。

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#creating-and-destroying-associations-on-the-fly

+0

私の編集#1を参照してください。 – Artegon

+0

'$ this-> Behaviors-> unload( 'Containable');' – bill

+0

を追加することはできません。いいえ、効果はありません。 – Artegon

関連する問題