2016-09-21 03:32:34 8001次浏览 4条回答 0 悬赏 10 金钱

视图中的代码如下:

代码1.jpg

浏览器显示此视图的效果:

视图.jpg

firebug下此视图的html代码:

html.jpg

而我想要得到的是如下效果:

效果.jpg

要得到的伪代码如下:

代码示意.jpg

也就是如何判断表单验证时有没有使得message产生,如果判断有message则单纯只得到model表单验证里的message,不加任何样式:

public function rules()
{
    return [
        ['email','required','message'=>'不能为空'],
    ];
}

最佳答案

  • 飘逸 发布于 2016-09-21 10:52 举报

    在你的表单以model验证之后。若有错误信息,则会向errors属性中填充错误信息。

    该错误信息是个数组,你可以打印下。 print_r($model->errors);

    并且你需要把这个带着错误信息的model返给视图。

    然后视图中可能有如下判断。

    <input type="text" name="username">
    
    <p class="错误信息">
        <?php if (isset($model->errors['username'][0])) echo $model->errors['username'][0]?>
    </p>
    
    5 条回复
    回复于 2016-09-21 14:28 回复

    感谢,完美解决!

    回复于 2016-12-15 13:34 回复

    怎么解决 的 分享下

    回复于 2017-01-10 00:11 回复

    就是 回答的啊

    回复于 2018-05-21 13:20 回复

    打扰了,做个测试,请忽略此回复

    回复于 2018-05-21 13:22 回复

    请忽略!!

  • 回答于 2016-09-21 09:07 举报

    自定义显示?完全可以用自带的提示功能实现你的需求。
    显示效果你可以自定义的。

    1 条回复
    回复于 2016-09-21 14:27 回复

    有时候一定要按照设计图来的,没办法,必须照办

  • 回答于 2016-09-21 09:09 举报

    建议使用ActiveForm生成表单,通过CSS实现你想要的显示效果。

    2 条回复
    回复于 2016-09-21 14:28 回复

    我用的就是ActiveForm

    回复于 2016-09-23 09:39 回复

    如果你用得就是ActiveForm的话,就不需要再手动写任何错误信息。如果相应字段有错误信息的,ActiveForm会自动生成。

  • 回答于 2016-09-23 16:39 举报

    感觉先用 ActiveForm 生成表单,然后提交表单的时候,表单内容不符合的话,可以直接用 $model->getErrors() 来获取错误内容.

您需要登录后才可以回答。登录 | 立即注册
lzw
主管

lzw 湖南

注册时间:2012-08-03
最后登录:2018-05-21
在线时长:9小时1分
  • 粉丝4
  • 金钱800
  • 威望10
  • 积分990

热门问题