CakePHP에서 belongsTo 관계에 문제가 있습니다.변수 'model'필드가있는 CakePHP belongsTo 관계
"액션"테이블을 사용하고 "트랜잭션"또는 "태그"두 가지 모델 중 하나에 속하는 "액션"모델이 있습니다. 사용자가 트랜잭션을 완료하거나 태그를 추가 할 때마다 작업 모델이 작성되어 로그를 유지한다는 아이디어가 있습니다. 트랜잭션이나 태그가 저장 될 때마다 aftersave() 메서드는 작업 레코드도 추가합니다. 문제는 액션 모델에서 find ('all')를 시도하면 관련 Transaction 또는 Tag 레코드가 반환되지 않습니다.
행동은 :
<?php
class Action extends AppModel {
var $name = 'Action';
var $actsAs = array('Containable');
var $belongsTo = array(
'Transaction' => array(
'foreignKey' => 'model_id',
'conditions' => array("Action.model"=>"Transaction")
),
'User' => array(
'fields' => array('User.username')
),
'Recommendation' => array(
'conditions' => array("Action.model"=>"Recommendation"),
'foreignKey' => 'model_id'
)
);
}
?>
을하지만 그건 작동하지 않습니다
id
model
model_id
created
나는이 같은 belongsTo를 관계의 "조건"매개 변수를 사용할 수 있다고 생각.
여기에 뭔가가 누락 되었습니까? 내 관계가 잘못 되었습니까? 이 문제를 검색 한 후에 나는 Polymorphic Behaviour라고 불리는 것을 가로 질러 갔지만 이것이 도움이 될지 확신하지 못합니다.
위대한 답변 롭! 나는 빵집을 보았을 정도로 오 PM 행동을 더 읽고 싶었습니다. 여기 링크가 있습니다 : http://bakery.cakephp.org/articles/view/polymorphic-behavior –
대단히 고마워요. 그게 정확히 내가 원하는 대답 이었어. – gomezuk
링크를 추가해 주셔서 감사합니다. Travis. 나는 내 대답에 그것을 연결 시키겠다는 확신을 갖고 있었지만 그렇지 않다. 나는 그것을 고쳐 주셔서 감사합니다. –