您的位置:首页 > 编程语言 > PHP开发

Yii2的一些简单知识

2016-03-15 15:56 549 查看

yii2升级

如果缺少插件就先运行:

php composer.phar global require "fxp/composer-asset-plugin:~1.0.0"


打印出数据库操作的sql语句

查询语句->createCommand()->getRawSql();

比如:

$model->find()->where('id = 1')->createCommand()->getRawSql();


设置session前缀,区分前台和后台

在user前后台各自的配置文件user组件下添加配置:

后台:
'idParam'=>'_admin'


前台:
'idParam'=>'_member'


例子:

'components' => [
'user' => [
'identityClass' => 'common\models\User',
'idParam' => '_admin',
'enableAutoLogin' => true,
],
],


获取当前控制器和方法

获取当前控制器:

Yii::$app->controller->id;

获取当前访问方法:

Yii::$app->controller->action->id;


在表单中添加CSRF验证

一. 使用 ActiveForm,这个是 Yii 里面的一个 widget,会自动生成 csrf

二. 就是自己定义表单,然后在表单中增加 csrf

$request = Yii::$app->getRequest();
echo Html::hiddenInput($request->csrfParam, $request->getCsrfToken());


从控制器里面传递变量到布局文件layouts里的模板中

控制器中

Yii::$app->view->params['layoutData']='我是变量';

视图中

$this->params['layoutData'];


yii2提交原生表单

在当前控制器里面加上一个属性:

public $enableCsrfValidation = false;


将url斜线的加密取消 (默认是加密的)

1、找到 UrlManager.php 文件
2、再找到这行 $url = "$baseUrl?{$this->routeParam}=" . urlencode($route); 把 urlencode 函数去掉就可以了


安装yii2自带的user表

命令界面进入到项目目录 运行 yii migrate 就会在数据库生产自带的用户表。

运行前记得配置数据库相关信息。


YII2页面404

让页面404:
throw new \yii\web\HttpException(404, 'The requested Item could not be found.');

高级模板的404页面默认是 \frontend\views\site\error.php ,这个文件是前台的。后台也是在相应的位置,感觉默认的404不好 看,就修改这个页面的内容就好了。


gii指定IP访问

yii自带的gii默认只支持在本地环境通过 127.0.0.1 访问,当我们用线上环境时,可以通过指定允许访问IP来访问gii。

修改 /vendor/yiisoft/yii2-gii/Module.php 中的$allowedIPs 属性就可以了:

public $allowedIPs = ['127.0.0.1', '::1', '允许IP'];

// 在配置文件修改
$config['modules']['gii'] = [
'class' => 'yii\gii\Module',

// 允许访问的IP
'allowedIPs' => [
'127.0.0.1', '::1',
'113.205.78.158'
]
];


模板里注册js代码块

<?php $this->beginBlock('js_end') ?>
......
<?php $this->endBlock() ?>
<?php $this->registerJs($this->blocks['js_end'], $this::POS_END); ?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  yii php