jackz
- jackz 回答了问题 Yii2执行效率问题
Database Queries你的是多少次
我的13次,6个asset绑定,达到300ms - jackz 赞了回答
重写
init
,beforeAction
,根据你的需要。初始化变量建议重写init
。 - jackz 回答了问题 Yii2执行效率问题
我觉得电脑该时刻是不是内存已经用了很多了,我出现这种情况,time会很快上升,但是关掉几个软件之后又正常了。
- jackz 赞了回答
第二个问题,你可以在一个template的layout里面设置一个flash,然后每次成功或失败,设置一个flash。layout判断到有flash存在后,提示成功或失败。这个东西可以做成一个提醒框,设置时间自动消失,那么就不用每次都跳转到固定的一个页面了,每个页面都会有这个弹框存在,全站提醒哦
- jackz 赞了回答
貌似只会回答第五个。
indexby 你多加个asarray 就知道做什么用的了。 - jackz 提出了问题Yii2 的一系列问题
ActiveRecord-》BaseActiveRecord-》Model
这是一个继承关系,就是说ActiveRecord是Model的子级,model层的两种区别就不赘述了。UserModel.php //用于存储各个表单的公共字段和规则等 LoginForm extends UserModel //用于处理登录的逻辑和一些login独立有的字段 SignupForm extends UserModel //用于处理注册逻辑和一些Singup才有的字段,比如确认密码 surepass UpdateForm extends UserModel //用户处理更新逻辑和更新才有的字段 //Usermodel 中有个成员变量保存这User extends ActiveRecord的引用用于真正的curd
这样做呢确实有他的好处,比如可以自己定义一些规则啊,都是专项的,考虑下扩展挺好的。
对于场景机制,还是不错的,既然说效率低了些,那就慎用。个人从项目的扩展来看,分开的好。比如UpdateForm,这个可以将全站所有关于update相关的东东都可以写在一起了。
管理起来会方便很多。
要看就看整体的规划,这个有待衡量。
程序越复杂,各个类的关系就会很复杂,是能分开就分开。算是一条开发原则了。
若有不妥之处,还望指出!模型直接继承
ActiveRecord
的弊端就是在视图层中,开发者可以直接和数据库交互,从这点出发,可以考虑不继承ActiveRecord
———————无耻的分割线———————————————————————————————————————————————————————————————
后面我在写的时候还是使用了UserModel继承ActiveRecord的方式,当然各个表单还是像上面分开,
为什么我后来还是让UserModel继承了ActiveRecord,因为我发现,我的数据验证规则是分散在一个一个的FormModel
中的,所以当return static::find()->where(['id'=>$id])->one()->validate()做更新的时候没有利用到数据规则,所以继承了,
在controler中的代码就变成了 UpdateForm::findOnePost($id);了,暂时没有想到好的解决方法,不知道是不是旁落了
scenario ,在项目中我还是没用到这个scenario 啊!(感觉要发生问题了),据我所知在,在事务中的使用好像也用到了
scenario 这个,不知您有什么建议或实践,
非常感谢您的回答,在我独自学习yii2的过程中。考官出tmd这种题就是让看你有没有经常 查手册看一些函数特别的使用例子
- jackz 提出了问题关于model的安排,最好要怎么设计?