2015-07-22 11:31:34 4717次浏览 6条回答 0 悬赏 1 金钱
public function rules()
{
    return [
        [['ID', 'STORAGE_ID', 'HOST_NAME'], 'required'],
        [['ID'], 'unique', 'message'=>'ID已占用'],
        [['ID', 'STORAGE_ID', 'FTP_PORT'], 'integer'],
        [['HOST_NAME', 'LOCAL_PATH', 'SHARE_PATH', 'FTP_USER', 'FTP_PWD', 'FTP_PATH', 'AMP_PATH', 'DESCRIPTION', 'METADATA'], 'string']
    ];
}

在这个rules写了个例子 验证一下 可是怎么都出不来,提交表单的时候 没有提示Message的信息。我是想问还需要 其他的配置吗?如数据库字段要设置成 unique的吗

  • 回答于 2015-07-22 13:07 举报

    提交的代码是什么就是action create或update里的 代码是怎么写的

  • 回答于 2015-07-22 13:30 举报

    你規則應該無誤, 你可以使用 gii去產生 CRUD 然後照著流程去使用一遍
    或者
    如上述者 把code貼出來 大家討論討論 要貼的話要貼 controller 跟 views
    這樣才方便幫你找尋問題

  • 回答于 2015-07-23 10:37 举报

    想让unique生效,需要在view里启用验证,代码参考:

    <?php 
    $form = ActiveForm::begin(['id' => 'form-signup',
            'enableAjaxValidation' => true,
            'enableClientValidation' => true,
        ]); 
    ?>
    
  • 回答于 2015-07-23 15:45 举报

    想让unique验证实现ajax验证,除了修改rules需要改2个地方
    1.view里面
    $form->field($model, 'ID',['enableAjaxValidation'=>true]);

    2.controller里面

    use yii\web\Response;
    use yii\widgets\ActiveForm;
    if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
        Yii::$app->response->format = Response::FORMAT_JSON;           
        return ActiveForm::validate($model);  	      
    }elseif($model->load(Yii::$app->request->post())){
        $model->save();
        ....
    } 
    
    , 觉得很赞
  • 回答于 2015-07-23 17:11 举报

    就算不用 Ajax 提交表單時直接驗證

    您送出表單後如果 $model->validate() 不正確的話
    再把$model->errors 傳回 ActiveForm 也行巴 是嗎 各位???

  • 回答于 2015-07-28 14:27 举报

    实在不行 去看看视屏 有说的

您需要登录后才可以回答。登录 | 立即注册
jsjsd
实习生

jsjsd

注册时间:2015-07-08
最后登录:2015-08-03
在线时长:1小时38分
  • 粉丝0
  • 金钱2
  • 威望0
  • 积分12

热门问题