不能过滤cakephp模型中的值

时间:2011-09-30 21:55:15

标签: php cakephp cakephp-appmodel

我创建了一个类别模型。我还创建了一个项目模型。项目模型属于类别模型,因此当您创建新项目时,您会收到一个类别下拉列表以选择您想要的类别。

其中一个类别是“Root”,我不希望在下拉列表中显示。我创建了我的belongsTo方法,如此

project.php MODEL

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

对于我的控制器,我打开了脚手架。

这是我的分类模型

类别模型

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' => ''
        ),
    );
}

2 个答案:

答案 0 :(得分:1)

我认为你的意思是从下拉菜单中删除Root蛋糕生成与关联?在这种情况下,试试这个:

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

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

答案 1 :(得分:0)

改为使用'conditions' => array('Categories !=' =>'1'),

验证用于保存数据,而不是用于查找。