2016-08-22 00:07:07 4284次浏览 4条回答 1 悬赏 40 金钱

在view下增加了一个dropDownList($Config, ['prompt'=>'Select...']) ?>
每次更新时如果选择的是prompt的话那么他的默认值就是NULL ,从而造成插入到mysql时无法更新
Column 'xxx' cannot be null,
我就想问有没有设置这个promot的默认值为0的,
我现在做的是model->save()的方法之前做判断
如果post过来的值为空的话,就将其设置为0,但我个人感觉这样做也太low了点。
不知道哪位有没有更好的一个方法

最佳答案

  • 胖纸囧 发布于 2016-08-22 09:30 举报

    能想到的几种答案:
    1.继承重写下dropDownList方法,将prompt的string值改成array
    2.在beforeSave方法里头做判断填充值
    3.数据库中将字段属性改为空
    4.不用dropDownList,手动生成select
    5.在rules里头直接分配默认值

    3 条回复
    回复于 2016-08-22 13:37 回复

    非常感谢你。是我自己没太细看rules这块。

    回复于 2016-08-22 16:08 回复

    实话说是@yii修和koko这俩家伙的答案。

    回复于 2016-08-22 16:36 回复

    积分不可能给多人,没办法

    觉得很赞
  • 回答于 2016-08-22 08:58 举报

    为什么会无法更新。有rules()。

    1 条回复
    回复于 2016-08-22 13:38 回复

    非常感谢你。是我自己没太细看rules这块。

  • 回答于 2016-08-22 09:16 举报

    在rules里把它默认值设置成0

    1 条回复
    回复于 2016-08-22 13:37 回复

    非常感谢你。是我自己没太细看rules这块。

  • 回答于 2016-08-22 13:25 举报

    给你的数据data数据加个初始值,[0=>'select...'],不要用prompt不就可以了

    1 条回复
    回复于 2016-08-22 13:37 回复

    非常感谢你。是我自己没太细看rules这块。

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

sucksdie

注册时间:2016-10-31
最后登录:2017-05-26
在线时长:2小时46分
  • 粉丝0
  • 金钱260
  • 威望0
  • 积分280

热门问题