Yii2的一些简单知识

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); ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值