Yii2 的安裝及簡單使用


 

前段時間第一次使用Yii2框架,碰到了一些問題,這里記錄一下。

Yii2安裝:通過composer安裝

1、首先要安裝composer,我在另外一篇博客中介紹了如何在Windows下安裝composer

2、全局設置 Composer 使用中國鏡像:

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

3、安裝composer-asset-plugin(如果不安裝composer-asset-plugin后面安裝yii2時會出現問題,這里默認安裝最新版)

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

4、(1)安裝基礎版,projectName是自己的項目名。

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

(2)安裝高級版。(高級版區分了前后台目錄backend,frontend)

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

:高級版安裝后需要初始化,雙擊根目錄下的"init.bat"文件,選擇"0"(表示開發環境),之后選擇"yes"就可以了,會自動生成入口文件。

5、配置域名信息就可以訪問了。(高級版需要分別配置前后台域名)

 

可能出現的問題:

安裝下來后可能會出現的問題:找不到vendor文件夾

原因:composer-asset-plugin沒有安裝或者版本太低

解決辦法:找到文件的根目錄,即composer.json文件目錄,打開命令行執行:composer update

 

Yii 2的簡單使用:

1、路由優化

找到 /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

:這個需要前后端都配置一遍。

 

2、駝峰命名路徑訪問

在yii2中如果使用駝峰命名,則默認使用"-",如要訪問UserAdminController控制器下的actionTestUser方法,則訪問路徑為:/user-admin/test-user

 

3、使用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請求了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM