2011-09-30 3 views
0

나는 카테고리 모델을 만들었습니다. 나는 또한 프로젝트 모델을 만들었다. 프로젝트 모델은 카테고리 모델에 속하므로 새 프로젝트를 만들 때 카테고리 드롭 다운을 사용하여 원하는 카테고리를 선택합니다.cakephp 모델 내의 값을 필터링 할 수 없습니다

범주 중 하나는 "루트"이며 드롭 다운 목록에이 표시를 원하지 않습니다. 나는 발판이 켜져있는 내 컨트롤러 이처럼

project.php의 모델

var $belongsTo = array(
    'User' => array(
     'className' => 'User', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ), 
    'Category' => array(
     'className' => 'Category', 
     'conditions' => array('Category.id '=>'1'), 
     'fields' => '', 
     'order' => '' 
    ), 
); 

처럼 내 belongsTo를 방법을 만들었습니다. 여기

분류 모델

class Category extends AppModel { 
    var $name = 'Category'; 
    var $displayField = 'name'; 
     var $actsAs = array('Tree'); 


    var $validate = array(
     'name' => array(
      'alphanumeric' => array(
       'rule' => array('alphanumeric'), 
       //'message' => 'Your custom message here', 
       //'allowEmpty' => false, 
       //'required' => false, 
       //'last' => false, // Stop validation after this rule 
       //'on' => 'create', // Limit validation to 'create' or 'update' operations 
      ), 
     ), 
     'parent_id' => array(
      'notempty' => array(
       'rule' => array('notempty'), 
       //'message' => 'Your custom message here', 
       //'allowEmpty' => false, 
       //'required' => false, 
       //'last' => false, // Stop validation after this rule 
       //'on' => 'create', // Limit validation to 'create' or 'update' operations 
      ), 
     ), 
     'url' => array(
      'notempty' => array(
       'rule' => array('notempty'), 
       //'message' => 'Your custom message here', 
       //'allowEmpty' => false, 
       //'required' => false, 
       //'last' => false, // Stop validation after this rule 
       //'on' => 'create', // Limit validation to 'create' or 'update' operations 
      ), 
     ), 
    ); 

    var $belongsTo = array(
     'ParentCategory' => array(
      'className' => 'Category', 
      'conditions' => '', 
         'foreignKey' => 'parent_id', 
      'fields' => '', 
      'order' => '' 
     ), 
    ); 
} 

답변

1

난 당신이 케이크 협회와 함께 생산하고 드롭 다운 메뉴에서 Root을 제거 의미 가정 내 카테고리 모델? 어떤 경우에는 다음을 시도하십시오.

$categories = $this->Category->find('list', 
        array('conditions' => array('Category.name !=' => 'Root'))); 

$this->set(compact('categories')); 
0

대신 'conditions' => array('Categories !=' =>'1'),을 사용하십시오.

유효성 검사는 데이터를 저장하는 데 사용되며 찾기에는 사용되지 않습니다.