2017-03-07 / Yii2
yii2的一个强大之处之一就是他的Form组件,既方便又安全。具体的rules使用方法这里就不提了, 如果你的一般验证规则,如require email captcha等可用,而unique却不起作用,可以朝下看.已经过实验,没有问题
我这里用的是高级模板,普通模板没用过,应该差不多, 在yii2首次安装之后,common/models/User.php就有username和email的unique规则,因为我前后台分离,所以将User.php分别在frontend和backend复制了一份,删除了common下的User.php,规则如下:
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['username','email'], 'trim'],
            [['username','email','password'], 'required'],
            ['username', 'unique', 'targetClass' => '\frontend\models\User', 'message' => '用户名已存在.'],
            ['username', 'string', 'min' => 5, 'max' => 255],

            ['email', 'email'],
            ['email', 'string', 'max' => 255],
            ['email', 'unique', 'targetClass' => '\frontend\models\User', 'message' => '邮箱已被注册.'],

            ['password', 'string', 'min' => 6, 'max' => 30],
            ['verifyCode', 'required','message'=>'验证码不能为空'],
            ['verifyCode', 'captcha','message'=>'验证码错误'],
        ];
    }
阅读全文...
2017-03-05 / Yii2
控制器内成员变量
public $layout = false; //不使用布局
public $layout = "main"; //设置使用的布局文件
控制器成员方法
$this->layout = false; //不使用布局
$this->layout = "main"; //设置使用的布局文件
阅读全文...
2017-02-28 / Yii2
ajax异步post提交出现400 bad request错误,
在确保配置无误且url地址正确的情况下,因为yii2的crsf验证不通过引起,
解决办法有2个,

1.关闭Csrf
这个方法不推荐,能开着尽量不要关
public function init(){
    $this->enableCsrfValidation = false;
}

2.在AJAX的data参数中加入_csrf字段阅读全文...
2017-02-22 / Yii2

Modal弹窗是一款bootstrap的js插件,使用方便,显示效果好。

使用效果图
效果还是很漂亮的,


使用方法:
1、在view层需要点击出现弹窗的位置创建一个按钮,用于调modal的显示,当然需要在;视图层引入类:
 

阅读全文...
2017-02-20 / Yii2
yii2自带分页, 用起来很简单, 主要就是几个参数的设置

1.控制器部分
//totalCount为数据总数, pageSize为每页显示数, 'pageSizeParam'=>false可将分页路径中per-page参数隐藏去掉
use yii\data\Pagination;
$data= $News::find();
$pages = new Pagination(['totalCount' =>$data->count(), 'pageSize' => 10,'pageSizeParam'=>false]); //分页
$data = $_data->offset($pages->offset)->orderBy('itemid DESC')->limit($pages->limit)->all();
阅读全文...
2017-02-20 / Yii2
跳转到某页
功能基于linkpager扩展,具体实现为重构系统yiiwidgetsLinkPager类,使用起来跟原来一样,只多一个go的参数,
效果图如下

在common\components目录新建GoLinkPager类文件,代码如下,方法代码来源于yii\widgets\LinkPager, 注阅读全文...
2017-02-19 / Yii2
php的排序真的那么重要吗? 我整了好几年代码,这4种算法就使用过一次,冒泡排序,因为需求比较特殊,说实话4种算法我真是没用过也不会,有时候你不能不会,虽然你用不到,
我感觉数据库设计好,数据处理好,就完全可以直接来用,一般情况下不必要再排序一次,

 

分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。 

$arr(1,43,54,62,21,66,32,78,36,76,39);

1. 冒泡排序

阅读全文...
2017-02-15 / Yii2

Yii使用 yii\web\Cookie对象来代表每个cookie,这里要注意yii\web\Request 和 yii\web\Response 的使用方法, 前者的cookie 集合代表请求提交的cookies,用于使用cookie, 后者的cookie集合表示发送给用户的cookies,用于添加时

添加 Cookies
 

$cookies = Yii::$app->response->cookies; //注意为response 
//添加新cookie 
$cookies->add(new \yii\web\Cookie([ ’name’ => ’language’, ’value’ => ’zh-CN’, ]));
阅读全文...
2017-02-14 / Yii2

yii2中,ActiveForm默认做了客户端验证,但是表单的提交,却不是无刷新的。也就是常常看到的表单提交后页面会刷新。如果想要开启无刷新的模式,只需要在ActiveForm开始开启enableAjaxValidation即可,像下面这样

<?php $form = ActiveForm::begin([
        'id' => 'form-id',
        'enableAjaxValidation' => true,
        'validationUrl' => Url::toRoute(['validate-form']),
    ]
); ?>
阅读全文...
2017-02-13 / Yii2
yii2里很多功能都是针对某个类的属性配置出来的,例如入口文件里的 (new yii\web\Application($config))->run() 中的 $config,就是对 yii\web\Application 类的属性进行配置,有些配置里还会有配置,比如 $config[’component’] 和 $config[’module’]。

一句话:配置可以简单的认为是指定你要用的类,以及初始化这个类的属性。

不论怎么说,初学不需要研究源码,但平时用到的类的父类最好都看一下,它提供了哪些可以给自己用的(public)属性、方法和注释还有常量,这才叫面向对象,要不继承有何用呢?这样你才能对你使用的东西更熟悉。yii2 的源码里有大量注释,甚至可以不看 api 文档了,建议学会用IDE提高看源码的效率。

看完下面的一些示例后,结合上面这句话,学习的收获或许会更大。

想对配置有更深了解的话还是建议去看一下官方文档,或者这篇文章,我觉得写的比我详细多了。阅读全文...