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 技巧总结相关推荐

  1. Nginx+Apache Yii2.0 配置方案

    最近用Yii2.0框架做了个小项目,虽然项目本身业务逻辑不复杂,但是由于本身业务逻辑的特殊性,在上午9点到12点之间系统访问量会突然上升(浏览量和用户上传文件量).导致系统单纯的部署在Apache下, ...

  2. Yii2.0 RESTful API 之版本控制

    Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现. 索性就 ...

  3. yii2.0错误:Exception yii\base\InvalidConfigException with message

    一.前言 最近碰到一个yii2.0的报错,网上查的时候也没什么太好的资料参考,所以就记录一下.完整的报错是: Exception 'yii\base\InvalidConfigException' w ...

  4. yii2.0使用ueditior完成上传单张,多张图片,上传视频等操作

    一.前言 由于工作需求需要集成富文本编辑器,本来是想要选用之前用过的WangEditor的,但是考虑到WangEditor还是比较小众,所以最终选择了没用过的Uedtor,这篇文章主要讲述了Yii2. ...

  5. yii2.0框架中自定义接口,实现类的多继承

    一.前言 最近有个需求,比如有A,B,C,D四个文件,原来的逻辑是,A继承B,C继承D.后来由于A和C的逻辑太像,既然如此的话,为什么不把A,C写一起呢,第一是方便维护,第二也是减少无用的代码,说干就 ...

  6. yii2.0 下拉菜单

    第一种方法:ActiveForm 类的 dropDownList 方法(优点,默认使用yii的样式) 1.在控制器的方法里面 ,我们需要拿到数据,一定是 findAll() 或者是 all() 方法的 ...

  7. Yii2.0实现微信公众号后台开发

    2019独角兽企业重金招聘Python工程师标准>>> 研读 微信公众平台开发者文档 ,然后再阅读本文,效果更佳! 接入微信 Yii2后台配置 1.在app/config/param ...

  8. yii2.0 elasticsearch模糊查询

    最近使用yii2.0查询es数据,一般查找语句用的yii2.0的query类,遇到模糊查询使用like的时候竟然报 like conditions are not supported by elast ...

  9. yii 全选 php,Yii2.0实现的批量更新及批量插入功能示例

    本文实例讲述了Yii2.0实现的批量更新及批量插入功能.分享给大家供大家参考,具体如下: 批量更新 方法1 /** * 批量更新循环周期 * @param array $condition * $co ...

最新文章

  1. Mongodb的范式化和反范式化
  2. 制造业人工智能8大应用场景
  3. Windows 11 预览版泄露!有 macOS 那味儿了......
  4. 运维工作钱少、事多而且杂?年轻人,你这个思想很危险吶
  5. 图像腐蚀 java_OpenCV3 图像膨胀 dilate、腐蚀 erode、提取图像中的条形码 JAVA 实现...
  6. 《软件工程概论》第二章核心内容
  7. git 撤销全部的commit_Git 撤销 Commit
  8. 迁移Net项目为Net Core\Standard项目
  9. centos 7 /etc/rc.local 开机不执行的问题
  10. 几句话就能让你明白:VLAN是什么、TRUNK又是什么
  11. 初识设计模式(单例模式)
  12. 前景检测算法(十六)--背景减除结束篇
  13. 藏经阁的藏,不念cang而是zang
  14. win10安装steam有损计算机,Win10专业版无法安装steam软件怎么办?
  15. matlab二重定积分_怎么用matlab计算这个二重积分如何用matlab求二重积分
  16. Cousera--machine learning笔记
  17. 毕业三年,坚持学习两年,成功上岸字节跳动,背水一战
  18. 【C语言随笔2】GCC编译环境下Socket编程简单实践
  19. 蓝桥杯科学素养题(2020年12月-2021年12月)
  20. win10系统关机时提示(程序没有响应)需要结束程序

热门文章

  1. 优秀的SharePoint 2013开发工具有哪些(二)
  2. Java: IE Firefox下载文件中文乱码的兼容代码
  3. Wind River颁布车用信息文娱行使Linux平台
  4. SQLCLR系列文章
  5. vue项目中对axios的全局封装
  6. SDUT-2121_数据结构实验之链表六:有序链表的建立
  7. IDEA 热部署 仅支持jdk1.6,1.7
  8. Leetcode按Tag刷题
  9. MPU和MCU的区别和选择
  10. RIP实验总结之一被动接口和单播更新