#Yii::$app->user 是指yii\web\User这个类

#yii2在命令行下执行
D:
cd D:\wnmp\php5
php D:\wnmp\www\yii2\yii test/test TestController.php
<?php
namespace console\controllers; use yii\console\Controller; class TestController extends Controller
{
public function actionTest()
{
echo "test\n";
}
}
?> #初始化yii2项目
php D:\wnmp\www\yii2-advanced-2.0.6\advanced\init #增加gii生成代码时的模版修改 配置文件main.php中增加如下配置 'generators' => [
'model' => [
'class' => 'yii\gii\generators\model\Generator',
'templates' => ['defaultG' => '@vendor/yiisoft/yii2-gii/generators/model/defaultG']
]
] #yii2的Event测试
1. Event的特性是在Componet中加入的。
2. 只要是Component类的子类都具有Event的属性。
3. Event使用的第一步是调用on()函数将事件相关信息写入。
4. Event使用的第二步是用trigger()函数将写入的事件执行。
5. Component的on()函数是将这个Event的相关信息(要触发的事件名称,触发事件时要用到的数据,触发事件时要执行的相关函数)写入到Componet的私有变量$_events数组中。
6. Component的trigger()函数就是调用call_user_fun()执行on()函数中写入的事件相关信息。 public function actionTestEvent()
{
$this->on('Person::EVENT_GREET', '\frontend\controllers\SiteController::person_say_hello', 'Hello World!');
$this->trigger('Person::EVENT_GREET');
} public static function person_say_hello($event)
{
echo $event->data; // 将显示 Hello World!
} #有两类特殊的配置项需要注意,就是以 on * 打头的事件和以 as * 打头的行为。Yii对于这两类配置项的处理,是在 yii\base\Component::__set() 中完成的。[1] #取当前类的类名
public function formName()
{
$reflector = new ReflectionClass($this); return $reflector->getShortName();
} #rbac
授权数据准备好后,存取检查简单到只需要一个方法调用 yii\rbac\ManagerInterface::checkAccess()。 因为大多数存取检查都是针对当前用户而言,为方便起见, Yii 提供了一个快捷方法 yii\web\User::can(),可以如下例所示来使用: if (\Yii::$app->user->can('createPost')) {
// 建贴
} 为了检查某用户是否能更新帖子,我们需要传递一个额外的参数,该参数是 AuthorRule 要用的: if (\Yii::$app->user->can('updatePost', ['post' => $post])) {
// 更新帖子
} 为通过检查,Authorrule 规则的 execute() 方法应当返回 true 。该方法从 can() 方法调用接收到 $params 参数, 因此它的值是 ['post' => $post] #Yii2在命令行下通过gii生成model和crud代码
#生成model
yii gii/model --ns=frontend\models\generate --tableName=test_user --modelClass=GUser --interactive=0 --overwrite=1
#生成model时继承另一个类
yii gii/model --ns=frontend\models\expand --baseClass=frontend\models\generate\GUser --modelClass=User --tableName=test_user --interactive=0 --overwrite=1
#生成curd
yii gii/crud --modelClass=frontend\models\expand\User --controllerClass=frontend\controllers\UserController --viewPath=@frontend/views/user --enableI18N=1 --interactive=1 --overwrite=1 #在操作model时可用setAttributes()方法代替直接给对像赋值,再对参数做相关排版就可使代码更加清晰
$user_order = new UserOrder();
$user_order->setAttributes([
"user_id" => Yii::$app->user->getId(),
"goods_id" => $model->goods_id,
"address_id" => $model->address_id,
"status" => 1
],false);
if($user_order->save()){
return [
'code' => 1,
'error_msg' => '操作成功',
'order_sn' => $user_order->order_sn,
];
} else {
return [
'code' => 0,
'error_msg' => '操作失败',
'error' => $user_order->getErrors(),
];
} #获取_csrf值
\Yii::$app->getRequest()->getCsrfToken(); #Yii2的count()使用
$user_count = User::find()->count(); #Yii2的where条件的一种使用方法 [1]
$query->andWhere([
'and',
[
'>=',
'price',
1
],
[
'<=',
'price',
20
],
]);
$query->andWhere([ 'and', [ '>=', 'price', 1 ], ]); #数据查询和分页
$query = (new \yii\db\Query())
->select(['user.id',
'user_address.address'
])
->from('user', 'user_address')
->join('LEFT JOIN', 'user_address', 'user.id = user_address.user_id')
->where(['user.id' => Yii::$app->user->getId()])
->andWhere(['>', 'user_address.status', 0]); $query_count = clone $query;
$pages = new \yii\data\Pagination(['totalCount' => $query_count->count()]); $models = $query->offset($pages->offset)
->limit($pages->limit)
->all();

yii2使用相关记录的更多相关文章

  1. [Android学习笔记]理解焦点处理原理的相关记录

    焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...

  2. 关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset)

    关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset) 2018-01-22  21:49:17 ...

  3. Yii2的相关学习记录,前后台分离及migrate使用(七)

    最近一直忙其它的(其实是懒!),将<深入理解Yii2>看了一遍,一些当初没明白的稍微明了了点,然后又看yii2的图片上传等处理.富文本.restful什么的,但由于没进行到这里,只看也不管 ...

  4. Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

    呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用 ...

  5. Yii2的相关学习记录,初始化Yii2(二)

    前面已经将Yii2下载下来了,那我们就需要能实际的使用. 一.初始化,因为我都是在windows系统下,所以用cmd命令打开下载下来的Yii2的根目录.然后运行下面命令: init 会提示选择0为开发 ...

  6. Yii2的相关学习记录,下载Yii2(一)

    原先学习过Yii1的相关知识,虽然也是半懂不懂的,但稍微的结构是了解的.现在利用晚上的时间学习下Yii2的使用,打算建一个后台管理系统,这里记录下,以免自己以后忘记. 目前已看一部分Yii2的权威指南 ...

  7. Yii2的相关学习记录,自定义gii模板和引用vendor中的js、css(四)

    上文中后台模板框架已经搭建起来了,但还是有些不协调,像是有两个User标题,或者我们想自己在gii生成时添加或删除些公用的东西.这就需要我们定义自己的gii模板. 我们以CRUD的模板为例,默认的gi ...

  8. Yii2的相关学习记录,后台模板和gii(三)

    前面已经可以正常登录,但我们需要体验下最常用的增删查改的操作.这里就需要gii,通过gii可以方便的生成表单.表格的框架,不需要我们再写重复的东西. gii访问地址:http://localhost/ ...

  9. Linux系列笔记 - vim相关记录

    一.常用到的vim命令 这里只简单记录常用到的命令,后面会有自己记录的命令,但有些可能不常用. 常规模式: gg 跳到文件头 shift+g 跳到文件尾 行数+gg 跳到指定行 如:123gg 跳到1 ...

随机推荐

  1. 【Python】自动生成html文件查看指定目录中的所有图片

    获取本目录下的pic子目录中的所有图片(jpg,png,bmp,gif等,此处以jpg文件为例),然后生成一个image.html文件,打开该html文件即可在浏览器中查看pic子目录中的所有图片. ...

  2. mysql in

    2016年4月13日 17:11:19 星期三 摘抄自<高性能mysql> 在很多数据库中, IN() 完全等同于多个 OR 的连结 MySQL的IN 会先将列表中的数据线进行排序, 然后 ...

  3. centos6.3安装python2.7, pip2.7, mysql

    参考: https://github.com/h2oai/h2o-2/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-ex ...

  4. .NET 泛型

    泛型      泛型将类型参数的概念引入 .NET Framework,类型参数使得设计如下类和方法成为可能:这些类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候.例如,通过 ...

  5. October 18th, Week 43rd Tuesday, 2016

    Live as if you were to die tomorrow. 将每一天都当作人生的最后一天来活. If I were to die tomorrow, I may choose to en ...

  6. kettle系列-1.kettle源码获取与运行

    第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了 ...

  7. threadid=1: thread exiting with uncaught exception (group=0xb2a86d70)

    这个错误是程序运行成功,但是一在虚拟机上运行就报“停止运行了”,如图: 然后我们查看一个日志信息: 查了好久,终于 搞好了,原因是安卓目标SDK版本太高了,我这里创建好默认是这样的如图: 只要把21改 ...

  8. Linux琐碎

    本周接触Linux的内容: 1.netstat -tanlp 显示监听的所有端口并且不解析端口为属于哪个进程 history | grep cmd 从命令历史中找到需要的命令 2. scp命令的使用: ...

  9. windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等

    安装matplotlib: pip install matplotlib 背景: 目的:要用Python下的DBSCAN聚类算法. scikit-learn 是一个基于SciPy和Numpy的开源机器 ...

  10. VB将JSON映射到表格实现解析

    现在抓取网页数据的时候,经常会遇到JSON的数据,相对于繁杂无标签名的HTML源,用JSON传回的数据比较直观好看点.但是从其中提炼数据也让人觉得很烦躁,基本上就是不断的查找,截取,或者组装成JS代码 ...