【CakePHP】アソシエーションの一時的な解除(unbindModel)

2019年7月29日

バージョン:CakePHP 2.2.2
モデルで「belongsTo」や「hasMany」などを指定している場合に、
一時的にアソシエーションを解除する場合はunbindModelを使用します。
既にアソシエーションを定義している時に、取得するデータ量を減らしたい場合などに有効です。

$this->モデル名->unbindModel(array(
			'hasOne'=>array('モデル名'),
			'hasMany'=>array('モデル名'),
			'belongsTo' => array('モデル名'),
			'hasAndBelongsToMany' => array('モデル名'),
			)
		);

下記のようにモデルを複数指定することもできます。

$this->モデル名->unbindModel(
			array(
				'hasMany'=>array('モデル名1','モデル名2'),
			)
		);

また、パラメーターにfalseを指定すると「unbindModel」で設定した情報が残ります。

$this->モデル名->unbindModel(
			array(
				'hasMany'=>array('モデル名1','モデル名2'),
			),
			,false
		);

※アソシエーションを追加したい場合にはbindModelを使用します。
▽参考
公式ドキュメント(アソシエーション: モデル同士を繋ぐ)

スポンサーリンク