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

Yii2.0 技巧总结的更多相关文章

  1. nginx1.9.4 +php 5.5.29+yii2.0配置手册

    nginx1.9.4 +php 5.5.29+yii2.0配置手册 目录 一.    php5.5.29安装配置    2 二.    nginx1.9.4安装配置    2 三.    yii2.0 ...

  2. 【Yii系列】Yii2.0基础框架

    缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是它的作者是华人,这才是让我 ...

  3. Yii2.0

    Yii2.0基础框架   缘起 因为一个月的短暂停留,我在给朋友搞事情,所以Yii系列的文章耽搁了很长时间,现在又重拾当时的知识,给大伙好好撸下这一系列的博客 提起Yii,虽然是国外的开发者搞的,但是 ...

  4. Yii2.0基础框架

    前言:最近在用php写一个项目的接口,所以需要学习一下Yii的框架,也在这里记录一下. 整体结构 ssets文件夹:assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问p ...

  5. Yii2.0.7 限制user module登录遇到的问题

    在Yii2.0.6的时候我是在以下文件通过以下方法实现的. frontend/modules/user/Module.php namespace frontend\modules\user; clas ...

  6. yii2.0归档安装方法

    我前几天用composer安装 一直没成功  我就用归档的方法安装了  所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功 ...

  7. [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索

    关联字段增加搜索 post表关联adminuser表,通过post.author_id  adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜 ...

  8. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  9. yii2.0框架安装心得

    yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...

随机推荐

  1. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑

    习惯使用jpa操作对象的方式,现在用mybatis有点不习惯. 其实是懒得写SQL,增删改查那么简单的事情你帮我做了呗,mybatis:NO. 没办法,自己搞喽! 这里主要是实现了通过代码自动生成my ...

  2. SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap

    其实我一点都不想用mybatis,好多地方得自己写,比如这里. 使用mybatis要写大量的xml,烦的一批.最烦人的莫过于写各种resultmap,就是数据库字段和实体属性做映射.我认为这里应该是m ...

  3. jfinal多数据源ActiveRecordPlugin

    因为项目需要从多个数据库取数据,所以需要配置多个数据源 尝试了ActiveRecordPlugin和DruidPlugin的多数据源,但是因为DruidPlugin在本地一直报错一个很奇怪的语法错误, ...

  4. Strategy(策略)模式

    1.概述 在软件开发中也常常遇到类似的情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能.如查找.排序等,一种常用的方法是硬编码(Hard Cod ...

  5. 一次tomcat的调优记录

    项目本身需要上传模型,使用的是springboot1.5.3. 上传的模型比较大,下载的过程中就出现了问题(下载是su调用的java接口,其开发并非本人负责,不可更改) 问题在于,下载的时候tomca ...

  6. Python 基础 高阶函数

    python 把函数作为参数 如果传入abs 作为参数 def add(x,y,y): return f(x) + f(y) add(-5,9,abs) 根据函数的定义,函数执行的代码实际上是. ab ...

  7. 二进制mysql安装相关知识

    建议安装5.x版本 高版本没安装经验的慎用 1.1 关闭防火墙systemctl stop firewalld.service #停止firewall#慎用 systemctl disable fir ...

  8. PHP-----PHP程序设计基础教程----第二章PHP基本语法

    博文结构: 2.1 PHP语法风格 2.1.1 PHP标记 PHP有四种风格的标记,具体如表2-1所示: 表2-1 PHP开始和结束标记 标记类型 开始标记 结束标记 示例 说明 标准标记 <? ...

  9. php网易云信im即时通讯和聊天室

    话不多说 直接上代码 <?php/** * Created by PhpStorm. * User: lhl * Date: 2019/4/10 * Time: 17:38 */ namespa ...

  10. 树莓3B+_root密码开启

    开启root用户的方法:1.设置密码:sudo passwd2.sudo passwd --unlock root3.root用户登录:su