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 function getVendorNickName(){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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React开发(157):一级直接用getFieldDecorator

<Row gutter{12}><Col span{12}><Form.Item label"省/市/区">{getFieldDecorator(proviceValue, {initialValue: proviceValue,rules: [{ required: true, message: 公司人数不能为空 }],})(<CascaderfieldNames{fieldNames}options{options}on…

【JavaScript】appendChild一个的注意点之会删除原dom树节点

最近在研究学习vue原理&#xff0c;其中使用createDocumentFragment()方法&#xff0c;是用来创建一个虚拟的节点对象&#xff0c;那问题来了&#xff0c;创建了虚拟dom树&#xff0c;且最后只渲染了虚拟dom树里面的节点&#xff0c;那原dom树的节点去哪里了&#xff0c;查阅了…

正则表达式图书

From: http://www.usidcbbs.com/read-htm-tid-1457-page-2.html 网文 vs 书藉 只要是知道“正则”这个词的&#xff0c;上网搜集个把资料&#xff0c;应该就不是问题吧。我获得正则消息的网絡渠道有这样几个&#xff0c;以质量从高到低排序&#xff1a;dilicious标签&#xff0…

Spring.NET学习笔记12——面向切面编程(基础篇) Level 300

AOP即面向切面编程(Aspect Oriented Programming的缩写)&#xff0c;是OOP(面向对象编程)的一种延续形式。是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术&#xff0c;它从一个不同于OOP的角度来看待程序的结构&#xff1a;OOP将…

React开发(158):ant design级联回显 直接传入数组

ReactDOM.render(<CascaderdefaultValue{[zhejiang, hangzhou, xihu]}options{options}onChange{onChange}/>,mountNode, );

vue-cli3使用svg图标的详细步骤

1.安装依赖 npm install svg-sprite-loader -D2.在vue.config.js里添加配置 module.exports{chainWebpack: config > {const svgRule config.module.rule("svg"); svgRule.uses.clear();svgRule.use("svg-sprite-loader").loader("svg-sprite…

网络工程师的忠告

诸位&#xff0c;咱当网络工程师也是几年了&#xff0c;不算有出息&#xff0c;环顾四周&#xff0c;也没有看见几个有出息的&#xff01;回顾工程师生涯&#xff0c;感慨万千&#xff0c;愿意讲几句掏心窝子的话&#xff0c;也算给咱们师弟师妹们提个醒&#xff0c;希望他们比…

python模拟登陆163邮箱并获取通讯录

From: http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html python模拟登陆163邮箱并获取通讯录 #-*- coding:UTF-8 -*-import urllib,urllib2,cookielibimport xml.etree.ElementTree as etree #xml解析类class Login163:#伪装browserheader {User-Agent:…

【BZOJ】【3850】ZCC Loves Codefires

贪心 就跟NOIP2012国王游戏差不多&#xff0c;考虑交换相邻两题的位置&#xff0c;对其他题是毫无影响的&#xff0c;然后看两题顺序先后哪个更优。sort即可。 WA了一次的原因&#xff1a;虽然ans开的是long long&#xff0c;但是在这一句:anstime*a[i].k;时&#xff0c;还是需…

Element-UI中关于table表格的那些骚操作

最近的项目中使用到element-ui组件库&#xff0c;由于做的是后台管理系统&#xff0c;所以经常需要操作表格&#xff0c;编辑样式的过程中遇到一些问题&#xff0c;官网针对table给出了很多的api&#xff0c;自己可以自定义&#xff0c;基本能满足产品需求&#xff0c;但是没有…

讯闪菜单密码去除方法

网上有很多关于讯闪菜单密码去除或补丁软件&#xff0c;但都没有把原理说出来&#xff0c;下面介绍方法&#xff1a;打开&#xff1a;讯闪目录\data\ClientCfg.ini查找&#xff1a;分类辅助d41d8cd98f00b204e9800998ecf8427e把分类辅助替换为&#xff1a;d41d8cd98f00b204e9800…

详细介绍 Qt Creator 快捷捷应用

From: http://www.zhujiangroad.com/program/Symbian/25211.html Qt Creator 快捷捷应用是本文要介绍的内容 。以前经常用VSQT的方式来学习QT&#xff0c;VS确实挺强大&#xff0c;不过每次编译Qt&#xff0c;太浪费时间&#xff0c;而且如果重装系统或者VS都必须重新编译&…

asp IIS部署An error occurred on the server when processing the URL错误提示解决

An error occurred on the server when processing the URL. Please contact the system administrator.If you are the system administrator please click here to find out more about this error.其实这是 IIS7 对 ASP 程序发送的一个脚本错误消息&#xff0c;只要是程序中…

修饰符.lazy .number .trim

1、lazy v-model 在每次 input 事件触发后将输入框的值与数据进行同步,也就是在失去焦点或者按下回车键时才更新 <template><div><p>.lazy修饰符</p><input type"text" v-model.lazy"val"><p>{{ val }}</p><…

使用Phar来打包发布PHP程序

简单来说&#xff0c;Phar就是把Java界的jar概念移植到了PHP界。 Phar可以将一组PHP文件进行打包&#xff0c;还可以创建默认执行的stub&#xff08;或者叫做 bootstrap loader&#xff09;&#xff0c;Phar可以选择是否进行压缩&#xff0c;可选gzip和bzip2格式。 下面举例说明…

asp.net动态加载css

谁如果有更直接的方法&#xff0c;请不吝赐教。也不知道.net有什么方法可以直接更换css <% Page Language"C#"AutoEventWireup"true"CodeFile"Default.aspx.cs"Inherits"_Default"%><!DOCTYPE html PUBLIC "-//W3C//DTD…

Qt Creator 使用技巧

From: http://www.developer.nokia.com/Community/Wiki/Qt_Creator_%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7 Qt Creator 使用技巧 简介 Qt Creator 作为Qt 开发的IDE&#xff0c;支持Qt 开发&#xff0c;及QML开发&#xff0c;能很好的发挥Qt 跨平台的特点&#xff0c;这里列举一…

Ubuntu下实现eth0与wlan0完美桥接

操作系统Ubuntu14.04LTS 1.搭载网桥模块 sudo apt-get install bridge-utils安装软件包 modprobe bridge//网上参考步骤&#xff0c;加载网桥模块&#xff0c;实际未用 cho "1">/proc/sys/net/ipv4/ip_forward//网上参考步骤&#xff0c;开启Ip转发功能&#xff0…