2015-06-24 12:12:41 9724次浏览 4条回答 2 悬赏 10 金钱

1,隐藏hint自动

public function attributeHints(){
//这里我定义了一些字段必要说明
}

但是非常不幸的是,如果,表单一旦验证错误,天啊,那个error错误和hint提示都是会一起显示的
,很明显我要去除那个hint,填正确又恢复嘛?看了 fieldConfig我发觉解决有点麻烦,
其实就是要解决

'template' => "{label}\n{beginWrapper}\n{input}\n{hint}\n{error}\n{endWrapper}",

动态增加删除的问题?(难道强哥认为这样子很漂亮)

2,大家是如何对每次成功做某个action之后要做的事情的?比如更新后提示操作成功,删除提示修改成功。

以下是我的解决方案

  • 像tp一样搞个跳转页面,(用户体验不好,直接踢,但必须承认这从某种程度上比较干净)
  • 使用yii\bootstrap\Alert + Yii::$app->session->setFlash('alert',$msg);
    (这种问题就是Alert分散在各个需要的页面,dirty code啊)
  • 还有一种就是绑定事件了(但是我想不出具体怎么做,觉得这才是王道,难道是init中on,然后具体操作中trigger,这和第二步好像没什么差别),

3,大家是如何解决url上错误的参数的?

  • 我的做法是在控制器中抛出 HttpNotFoundException;
    大家有没有更好的方法,另外我感觉我老是需要判断url的参数是否存在,这种代码分散在我的各个模型层中,有什么
    好的解决方法吗?(其实也可以没有判断,直接在控制器判断,大家是怎么处理的。)

4,Yii::$app->user->identity->name这种代码分散在视图中 有什么更好的实践吗?

5,query object的一个问题

$customers = Customer::find()
    ->indexBy('id')
    ->all();

不懂啊;debug了一下,数据好像没差别,大家能说说差别吗?

  • 回答于 2015-06-24 13:31 举报

    貌似只会回答第五个。
    indexby 你多加个asarray 就知道做什么用的了。

    觉得很赞
  • 回答于 2015-06-24 14:18 举报

    第二个问题,你可以在一个template的layout里面设置一个flash,然后每次成功或失败,设置一个flash。layout判断到有flash存在后,提示成功或失败。这个东西可以做成一个提醒框,设置时间自动消失,那么就不用每次都跳转到固定的一个页面了,每个页面都会有这个弹框存在,全站提醒哦

    4 条回复
    回复于 2015-06-29 15:05 回复

    我就是这么做的,效果体验也算不错

    回复于 2015-06-30 00:32 回复

    是的,这样子确实优雅了很多,但是还有一点不优雅Yii::$app->session->setFlash('alert','修改成功');
    这句话还是分布,如果后期我想改成 操作成功等其他比较有意思的话,就呵呵了,所以
    我还是写成 触发事件的形式封起来。

    回复于 2015-06-30 08:20 回复

    success成功,fail失败,information提醒等等,设置多一些样式出来,这样就能按需使用了

    回复于 2015-07-01 10:16 回复

    听起来就很高大上,如果有机会,可以把思路跟代码分享一下就最好了

    , 觉得很赞
  • 回答于 2015-06-24 14:30 举报

    参与讨论一下:
    1,fieldConfig里面的template是可以自定义的,如果你觉得不需要hint,去掉{hint}部分的内容应该就可以了。
    2,我是用1方式,想了下2方式你可以和1结合一下应该能够解决你的问题。事件方式可以参考yii2-debug是如何嵌入到你的页面的。
    3,对于参数是否存在什么的,我一般是直接通过actionXxxx($p1,$p2)而非Yii::$app->request来接收参数。Yii中会自动通过反射把URL参数通过call_user_func_array正确的传递到控制器中来。如果参数缺失时,系统会自动报404
    4,不理解你的问题
    5,不理解你的问题

    1 条回复
    回复于 2015-06-29 15:07 回复

    对于第四个问题,或许他想表达的是,一个代码写的到处都是,后期修改不容易。。或是嫌麻烦。。大不了封装一下这些代码,虽然也是到处也有分散。。

  • 回答于 2015-06-24 14:43 举报

    一个一个的发多好,难道你觉得这样很漂亮?

    1 条回复
    回复于 2015-06-24 14:57 回复

    同意小龙的观点!

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
jackz
主管

jackz

注册时间:2015-06-10
最后登录:2018-08-02
在线时长:10小时6分
  • 粉丝6
  • 金钱255
  • 威望30
  • 积分655

热门问题