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提高看源码的效率。

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

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

文本框:textInput();
密码框:passwordInput();
单选框:radio(),radioList();
复选框:checkbox(),checkboxList();
下拉框:dropDownList();
隐藏域:hiddenInput();
文本域:textarea([’rows’=>3]);
文件上传:fileInput();
提交按钮:submitButton();
重置按钮:resetButtun();

阅读全文...
2017-02-13 / Yii2
下拉搜索
日期格式化并实现日期可搜索
根据参数进行是否显示
链接可点击跳转
显示图片
html渲染
自定义按钮
设定宽度等样式
自定义字段
自定义行样式
增加按钮调用js操作
yii2 GridView 下拉搜索实现案例教程
yii2 GridView 日期格式化并实现日期可搜索 案例
是否显示某列案例
阅读全文...
2017-02-13 / Yii2
直接 model 删除

$model = User::find($id);
$model->delete();


带有条件的删除

$connection ->createCommand()
            ->delete('tbl_user', 'status = 0')
            ->execute();


使用 Query 查询删除

$connection ->createCommand('DELETE FROM tbl_user WHERE userid=:userid')
            ->execute();

阅读全文...
2017-02-13 / Yii2
默认预定义别名一共有12个,其中路径别名11个,URL别名只有 @web 1个:

@yii 表示Yii框架所在的目录,也是 yii\BaseYii 类文件所在的位置;

@app 表示正在运行的应用的根目录,一般是 digpage.com/frontend ;

@vendor 表示Composer第三方库所在目录,一般是 @app/vendor 或 @app/../vendor ;

@bower 表示Bower第三方库所在目录,一般是 @vendor/bower ;

@npm 表示NPM第三方库所在目录,一般是 @vendor/npm ;

@runtime 表示正在运行的应用的运行时用于存放运行时文件的目录,一般是 @app/runtime ;

@webroot 表示正在运行的应用的入口文件 index.php 所在的目录,一般是 @app/web;

@web URL别名,表示当前应用的根URL,主要用于前端;

@common 表示通用文件夹;

@frontend 表示前台应用所在的文件夹;

@backend 表示后台应用所在的文件夹;

@console 表示命令行应用所在的文件夹;

其他使用Composer安装的Yii扩展注册的二级别名。

这样,在整个Yii应用中,只要使用上述别名,就可方便、且统一地表示特定的路径或URL。

阅读全文...
2017-02-13 / Yii2
 required : 必须值验证属性

[[’字段名’],required,’requiredValue’=>’必填值’,’message’=>’提示信息’]; #说明:CRequiredValidator 的别名, 确保了特性不为空.


email : 邮箱验证

[’email’, ’email’]; #说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址.


match : 正则验证

[[’字段名’],match,’pattern’=>’正则表达式’,’message’=>’提示信息’];      

[[’字段名’],match,’not’=>ture,’pattern’=>’正则表达式’,’message’=>’提示信息’]; /*正则取反*/ #说明:CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式.

阅读全文...
2017-02-13 / Yii2
//获取当前路径 - 相对路径

$url = Url::current();
例:/mobile/hmConnections/user/verify-user


//获取当前路径 - 相对路径

$url = Url::current([’id’ => 1], false);
如: /mobile/hmConnections/user/verify-user?id=1


//获取当前路径 - 绝对路径

$url = Url::current([’id’ => 1], true);
如: http://000000.com/mobile/hmConnections/user/verify-user?id=1

阅读全文...
2017-02-13 / Yii2
yii2访问控制过滤器accessRules使用方法总结

访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式。这种授权模式基于用户名,客户IP地址和访问类型。
访问控制过滤器,适用于简单的验证。需要复杂的访问控制,需要使用基于角色访问控制(role-based access (RBAC))。

打在最前面,如下摘自yiichina里面,估计是yii2普通版本的方式,我没具体研究,如下为高级模板的siteController控制器里的权限控制方式,写法有不同,

    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            ’access’ => [
                ’class’ => AccessControl::className(),
                ’rules’ => [
                    [
                        ’actions’ => [’login’,’error’,’captcha’],
                        ’allow’ => true, //直接允许访问,captcha不加在下面的actions里,不然会出现验证码不显示的问题
                    ],
                    [
                        ’actions’ => [’logout’, ’index’],
                        ’allow’ => true,
                        ’roles’ => [’@’], // @ 表示验证通过的用户才有权限 * 任何用户  ? 匿名用户
                    ],
                ],
            ],
            ’verbs’ => [
                ’class’ => VerbFilter::className(),
                ’actions’ => [
                    ’logout’ => [’post’],
                ],
            ],
        ];
    }

阅读全文...