Yii2 的安装及简单使用

 

前段时间第一次使用Yii2框架,碰到了一些问题,这里记录一下。php

Yii2安装:经过composer安装

一、首先要安装composer,我在另一篇博客中介绍了如何在Windows下安装composerhtml

二、全局设置 Composer 使用中国镜像:json

composer config -g repo.packagist composer https://packagist.phpcomposer.com

三、安装composer-asset-plugin(若是不安装composer-asset-plugin后面安装yii2时会出现问题,这里默认安装最新版)后端

composer global require "fxp/composer-asset-plugin"

四、(1)安装基础版,projectName是本身的项目名。yii2

composer create-project --prefer-dist yiisoft/yii2-app-basic projectName

(2)安装高级版。(高级版区分了先后台目录backend,frontend)app

composer create-project --prefer-dist yiisoft/yii2-app-advanced projectName

:高级版安装后须要初始化,双击根目录下的"init.bat"文件,选择"0"(表示开发环境),以后选择"yes"就能够了,会自动生成入口文件。composer

五、配置域名信息就能够访问了。(高级版须要分别配置先后台域名)框架

 

可能出现的问题:

安装下来后可能会出现的问题:找不到vendor文件夹frontend

缘由:composer-asset-plugin没有安装或者版本过低yii

解决办法:找到文件的根目录,即composer.json文件目录,打开命令行执行:composer update

 

Yii 2的简单使用:

一、路由优化

找到 /frontend/config/main.php 文件,找到如下代码,去掉注释,运行后发现能够去掉"?r="使用"/"代替,可是仍是不能去掉index.php。

'urlManager' => [ 'enablePrettyUrl' => true,   // 美化url去掉 ?r=
    'showScriptName' => false,   // 隐藏index.php
    'rules' => [ ], ],

要去掉index.php,还须要在入口文件下添加.htaccess文件,文件内容以下:

# use mod_rewrite for pretty URL support
RewriteEngine on # if a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # otherwise forward the request to index.php
RewriteRule . index.php

:这个须要先后端都配置一遍。

 

二、驼峰命名路径访问

在yii2中若是使用驼峰命名,则默认使用"-",如要访问UserAdminController控制器下的actionTestUser方法,则访问路径为:/user-admin/test-user

 

三、使用post方法访问

在Yii2中若是不作处理,使用post访问会报错。这是由于Yii2使用post请求时默认会使用CSRF验证。

这里能够在表单中加入验证或者后台能够取消掉CSRF验证。

方法一:在表单中加入验证:(若是能使用这种方法最好)

<input name="_csrf" type="hidden" id="_csrf" value="<?= Yii::$app->request->csrfToken ?>" />

方法二:全局配置,在配置文件中加入 'enableCsrfValidation' => false

在config文件夹下找到"components"配置下的"request"配置,在里面加入'enableCsrfValidation' => false表示取消掉CSRF验证。

方法三:局部配置,在单个控制器下配置

能够在单个控制器下添加代码:

public $enableCsrfValidation = false;

这样在这个控制器下的方法就可使用post请求了。

相关文章
相关标签/搜索