Yii2.0 技巧总结
View部分
1. 使用ActiveField中的hint生成提示文字
<?= $form->field($model, 'freightAddedFee')->textInput()->hint('大于0的整数') ?>
2. 文本框添加placeholder属性,其实这个本来就是html5带的属性。
<?= $form->field($model, 'mobile', $input_class)->textInput(['maxlength' => 60,'placeholder' => '11位数字']) ?>
3. 用activeForm生成的元素不让出现label
<?= $form->field($model, 'skuType1')->textInput()->label(false) ?>
4. 使用GridView,如果数据库中保存的是图片地址,在前台显示成图片可以使用format,并添加图片样式
['label' => '头像','format' => ['image',['class' => 'thumbnail_image']],'value' => 'avatarUrl',],
Controller 部分
1. 跳转回上次的地址
return $this->redirect(Yii::$app->request->referrer);
Model 部分
1. 通过中间表关联查询
public functiongetVendorNickName(){return $this->hasOne(User::className(), ['id' => 'userId']) ->viaTable(BaseVendor::tableName(), ['id' => 'vendorId']); }
参见:http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#relations-with-junction-table
2. 查询语句使用join时为表起别名。起别名可以防止冲突,因为有时候会join一张表两次。
下面的例子为user表起了u1的别名
$query->joinWith(['vendorNickName' => function ($q) {$q->where('u1.nickname LIKE "%' . $this->vendorNickName . '%"')->from(User::tableName().' u1');}]);
生成的SQL类似:
SELECT `za_order`.* FROM`za_order`LEFT JOIN`za_user_vendor`ON `za_order`.`vendorId` =`za_user_vendor`.`id`LEFT JOIN`za_user` `u1`ON `za_user_vendor`.`userId` =`u1`.`id`WHERE u1.nickname LIKE "%一号微店%"
配置和components
1. 1分钟配置站点出错自动发告警邮件功能。
我们知道站点出错时,Yii2会记录日志 可能会在存放在 \frontend\runtime\logs,Yii2 自带swiftmailer。我们可以通过配置修改Log的target。指定是以文本存储本地还是发送邮件。
具体见下面的代码。你需要修改邮箱相关配置信息。
更多信息见 文档
'components' =>['user' =>[//.....],'log' =>['traceLevel' => YII_DEBUG ? 3 : 0,'targets' =>[['class' => 'yii\log\FileTarget','levels' => ['error', 'warning'],],['class' => 'yii\log\EmailTarget','levels' => ['error'],//'categories' => ['yii\db\*'],'message' =>['from' => ['no_reply@qq.com'],'to' => ['xx@qq.com'],'subject' => basename(dirname(__DIR__)) .' errors in XX site',],'categories' => ['yii\db\*', 'yii\web\HttpException:*'] // 只处理数据库和请求导致的错误 'except' => ['yii\web\HttpException:404'], // 排除404,不然的话你会发现你的邮箱里全塞满了这些邮件
],],],'mailer' =>['class' => 'yii\swiftmailer\Mailer',//viewPath 不使用'viewPath' => '',//send all mails to a file by default. You have to set// 'useFileTransport' to false and configure a transport// for the mailer to send real emails.'useFileTransport' => false,'transport' =>['class' => 'Swift_SmtpTransport','host' => 'smtp.qq.com','username' => 'xxx@qq.com','password' => 'your_password','port' => '465','encryption' => 'ssl',],],
参考:http://www.kkh86.com/it/yii2-adv/guide-base-modify-jquery.html
转载于:https://www.cnblogs.com/mafeifan/p/4205527.html
Yii2.0 技巧总结相关推荐
- Nginx+Apache Yii2.0 配置方案
最近用Yii2.0框架做了个小项目,虽然项目本身业务逻辑不复杂,但是由于本身业务逻辑的特殊性,在上午9点到12点之间系统访问量会突然上升(浏览量和用户上传文件量).导致系统单纯的部署在Apache下, ...
- Yii2.0 RESTful API 之版本控制
Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现. 索性就 ...
- yii2.0错误:Exception yii\base\InvalidConfigException with message
一.前言 最近碰到一个yii2.0的报错,网上查的时候也没什么太好的资料参考,所以就记录一下.完整的报错是: Exception 'yii\base\InvalidConfigException' w ...
- yii2.0使用ueditior完成上传单张,多张图片,上传视频等操作
一.前言 由于工作需求需要集成富文本编辑器,本来是想要选用之前用过的WangEditor的,但是考虑到WangEditor还是比较小众,所以最终选择了没用过的Uedtor,这篇文章主要讲述了Yii2. ...
- yii2.0框架中自定义接口,实现类的多继承
一.前言 最近有个需求,比如有A,B,C,D四个文件,原来的逻辑是,A继承B,C继承D.后来由于A和C的逻辑太像,既然如此的话,为什么不把A,C写一起呢,第一是方便维护,第二也是减少无用的代码,说干就 ...
- yii2.0 下拉菜单
第一种方法:ActiveForm 类的 dropDownList 方法(优点,默认使用yii的样式) 1.在控制器的方法里面 ,我们需要拿到数据,一定是 findAll() 或者是 all() 方法的 ...
- Yii2.0实现微信公众号后台开发
2019独角兽企业重金招聘Python工程师标准>>> 研读 微信公众平台开发者文档 ,然后再阅读本文,效果更佳! 接入微信 Yii2后台配置 1.在app/config/param ...
- yii2.0 elasticsearch模糊查询
最近使用yii2.0查询es数据,一般查找语句用的yii2.0的query类,遇到模糊查询使用like的时候竟然报 like conditions are not supported by elast ...
- yii 全选 php,Yii2.0实现的批量更新及批量插入功能示例
本文实例讲述了Yii2.0实现的批量更新及批量插入功能.分享给大家供大家参考,具体如下: 批量更新 方法1 /** * 批量更新循环周期 * @param array $condition * $co ...
最新文章
- Mongodb的范式化和反范式化
- 制造业人工智能8大应用场景
- Windows 11 预览版泄露!有 macOS 那味儿了......
- 运维工作钱少、事多而且杂?年轻人,你这个思想很危险吶
- 图像腐蚀 java_OpenCV3 图像膨胀 dilate、腐蚀 erode、提取图像中的条形码 JAVA 实现...
- 《软件工程概论》第二章核心内容
- git 撤销全部的commit_Git 撤销 Commit
- 迁移Net项目为Net Core\Standard项目
- centos 7 /etc/rc.local 开机不执行的问题
- 几句话就能让你明白:VLAN是什么、TRUNK又是什么
- 初识设计模式(单例模式)
- 前景检测算法(十六)--背景减除结束篇
- 藏经阁的藏,不念cang而是zang
- win10安装steam有损计算机,Win10专业版无法安装steam软件怎么办?
- matlab二重定积分_怎么用matlab计算这个二重积分如何用matlab求二重积分
- Cousera--machine learning笔记
- 毕业三年,坚持学习两年,成功上岸字节跳动,背水一战
- 【C语言随笔2】GCC编译环境下Socket编程简单实践
- 蓝桥杯科学素养题(2020年12月-2021年12月)
- win10系统关机时提示(程序没有响应)需要结束程序