clumsyboy 2011-05-20 09:14:29 5988次浏览 4条回复 1 0 0

请教了,一些自定义的方法是否可以直接放入rules啊

  • 回复于 2011-05-20 09:17 举报

    可以啊,你看一下Blog的Post模型类:

    /**
    * @return array validation rules for model attributes.
    */
    public function rules()
    {
      // NOTE: you should only define rules for those attributes that
      // will receive user inputs.
      return array(
        array('title, content, status', 'required'),
        array('status', 'in', 'range'=>array(1,2,3)),
        array('title', 'length', 'max'=>128),
        array('tags', 'match', 'pattern'=>'/^[\w\s,]+$/', 'message'=>'Tags can only contain word characters.'),
        array('tags', 'normalizeTags'),
        array('title, status', 'safe', 'on'=>'search'),
      );
    }
    /**
    * Normalizes the user-entered tags.
    */
    public function normalizeTags($attribute,$params)
    {
      $this->tags=Tag::array2string(array_unique(Tag::string2array($this->tags)));
    }
    
  • 回复于 2011-05-20 09:43 举报

    自定义的方法是否可以写在controller里,因为我在这里要用到里面的loadModel方法确定条件范围
    写进controller的话如何确定调用的路径啊

  • 回复于 2011-05-21 11:36 举报

    不可能,要不扩展 CValidator 的类,要不就写在模型里……

  • 回复于 2011-11-08 18:26 举报

    受教了!谢谢分享

您需要登录后才可以回复。登录 | 立即注册