Yii2 的一系列问题 [ 2.0 版本 ]
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了一下,数据好像没差别,大家能说说差别吗?
共 4 个回答
-
RichardTian 回答于 2015-06-24 14:18 举报
第二个问题,你可以在一个template的layout里面设置一个flash,然后每次成功或失败,设置一个flash。layout判断到有flash存在后,提示成功或失败。这个东西可以做成一个提醒框,设置时间自动消失,那么就不用每次都跳转到固定的一个页面了,每个页面都会有这个弹框存在,全站提醒哦
共 4 条回复RichardTian 回复于 2015-06-30 08:20 回复@jackz success成功,fail失败,information提醒等等,设置多一些样式出来,这样就能按需使用了
-
参与讨论一下:
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 条回复
jackz
最后登录:2018-08-02
在线时长:10小时6分
- 粉丝6
- 金钱255
- 威望30
- 积分655