2018-09-07 11:56:31 1621次浏览 5条回答 0 悬赏 10 金钱

创建的时候报的错误信息

0.png

controller

1.png

view里的 create.php

2.png

_form.php

3.png

最佳答案

  • drodata 发布于 2018-09-07 19:16 举报

    rules() 内声明规则的格式是:

    [
        ['attribute1', 'attribute2', ...],
    
        // 注意这里必须是字符串,不能是数组
        'validator',
    
        'on' => ['scenario1', 'scenario2', ...],
    
        'property1' => 'value1', 'property2' => 'value2', ...
    ]
    

    你检查一下自己 Goods 模型内的规则是不是按照上面的要求。拿下面这个 required 规则来说:

    public function rules()
    {
        [['container_id'], 'required'],
    }
    

    如果你写成:

    [['container_id'], ['required']],
    

    就会重现你遇到的错误。

    1 条回复
    回复于 2018-09-15 10:25 回复

    哥们 这个验证格式的问题! 谢谢 老铁

  • 回答于 2018-09-07 17:39 举报

    看着没毛病 把错误堆栈发全.

  • 回答于 2018-09-07 17:31 举报

    从第一张截图中的堆栈信息来看,应该不是 Html 创建下拉菜单的问题,更像是表单提交时哪个模型的验证规则出了问题,注意 Validator::createValidator() 处。

    就这么说吧,就是创建下拉菜单的时候报的错 去掉创建那一行就没问题 ,真的不知道为什么~~

    去掉生成下拉菜单部分代码后没问题是因为去掉后你的表单除了提交按钮外什么也没有了,自然不会出错。

  • 回答于 2018-09-07 16:34 举报

    错误信息帖全点~

  • 回答于 2018-09-07 13:51 举报

    你这view层,写的不太清楚,看不懂

    3 条回复
    回复于 2018-09-07 14:32 回复

    view就是create.php引入一个_form.php 就这么说吧,就是创建下拉菜单的时候报的错 去掉创建那一行就没问题 ,真的不知道为什么~~

    回复于 2018-09-13 17:18 回复

    你直接在传递的参数那里写下拉列表?

    回复于 2018-09-13 17:23 回复


    你看下我平时的用法,你的那种我没有用过,小白表示不知道哎
    [

    'attribute' => 'is_display',
    'label' => '菜单是否显示',
    'headerOptions' => ['width' => '120px'],
    'value' => function ($model) {
        $isDisplay = $model->is_display;
    
        return $isDisplay ? '显示' : '不显示';
    },
    'filter' => Html::dropDownList('MenuSearch[is_del]',$searchModel->is_display,
        [ '' => '请选择',
            '0' => '正常',
            '1' => '删除',
        ],['class'=> 'form-control']),
    

    ],

您需要登录后才可以回答。登录 | 立即注册
mouthliu
职场新人

mouthliu

注册时间:2018-09-07
最后登录:2019-04-13
在线时长:5小时22分
  • 粉丝0
  • 金钱25
  • 威望0
  • 积分75

热门问题