『壹』 yii2 後台怎麼直接用/admin
yii2訪問許可權默認由自帶rbac組件管理需要自編寫相應規則實現許可權管理圖形界面
yii2-adminrbac管理視化需要點幾滑鼠能設置簡單規則
本教程軟體版本及鏈接:yii2(v2.06,使用高級模板),yii2-admin(2.0)
yii2:
yii2-admin:
本文未涉及自定義規則yii2-admin菜單
假定已經安裝yii2且資料庫創建user表具體安裝步驟見文檔
使用composer安裝yii2-admin
非windows環境:
php composer.phar require mdmsoft/yii2-admin "~2.0"
php composer.phar update
Windows:
composer require mdmsoft/yii2-admin "~2.0"
composer update
內網路環境復雜能安裝間較間響應終止命令重試
配置yii2-admin運行環境
注意:yii2-admin配置common目錄全局效導致控制台(console)命令報錯
僅許可權控制應用於frontend模塊所配置寫frontend目錄
配置文件:frontend\config\main.php
return [
'moles' => [
'admin' => [
'class' => 'mdm\admin\Mole',
'layout' => 'left-menu',//yii2-admin導航菜單
]
...
],
...
'components' => [
...
'authManager' => [
'class' => 'yii\rbac\DbManager', // 使用資料庫管理配置文件
]
],
'as access' => [
'class' => 'mdm\admin\components\AccessControl',
'allowActions' => [
'site/*',//允許訪問節點自行添加
'admin/*',//允許所訪問admin節點及其節點
]
],
];
創建相應資料庫表
控制台輸入命令:
yii migrate --migrationPath=@mdm/admin/migrations
yii migrate --migrationPath=@yii/rbac/migrations
安裝完
『貳』 yii2 怎麼安裝和使用PHPExcel
在yii2項目的根目錄下的composer.json中的require那裡加入
"phpoffice/phpexcel": "dev-develop"
然後使用終端(windows使用cmd)進入yii2項目目錄
執行以下命令即可:
composer update
使用的話,就很簡單,use導入phpexcel類,然後就可以使用了(具體使用請看文檔)
『叄』 Yii框架有沒有必要自己過濾html表單提交的數據
一般的開發框架都沒有幫你過濾的···自己寫驗證吧··或者把驗證寫在過濾器裡面··
『肆』 yii2 怎麼批量刪除
yii2 批量刪除
刪除數據(Deleting Data)
刪除單行數據,首先獲取與該行對應的 Active Record 實例,然後調用 yiidbActiveRecord::delete() 方法。
$customer=Customer::findOne(123);
$customer->delete();
你可以調用 yiidbActiveRecord::deleteAll() 方法刪除多行甚至全部的數據。例如,
Customer::deleteAll(['status'=>Customer::STATUS_INACTIVE])
----------------------------------------------------------------------
提示:調用deleteAll()時要非常小心,因為如果在指定條件時出錯, 它可能會完全擦除表中的所有數據。
『伍』 yii2 如何連接資料庫
『陸』 yii2.0 全局變數怎麼設置
首先說下$GLOBALS的作用域: php腳本的所有位置,或者require或者include的文件內,必須是同一個腳本內,如果你是兩個無關聯的腳本當然訪問不到。 然後你要的是獲取之前記錄的頁面鏈接: 存儲$_SESSION好了,也比較安全
『柒』 Yii2框架操作資料庫的方法分析【以mysql為例】
本文實例講述了Yii2框架操作資料庫的方法。分享給大家供大家參考,具體如下:
准備資料庫
DROP
TABLE
IF
EXISTS
`pre_user`;
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4;
配置連接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhost;dbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
];
查看資料庫連接是否成功
控制器里列印:
var_mp(\Yii::$app->db);
怎麼執行SQL語句?
增刪改
//
接收表單的數據
$username
=
'jack';
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)";
//
返回受影響行數
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute();
//
獲取自增ID
echo
\Yii::$app->db->getLastInsertID();
查詢
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id";
//
查詢結果是一個二維數組
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll();
//
如果要查詢一個
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne();
//
如果要返回單值
//
例如
select
count(*)語句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar();
echo
$count;
更多關於Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家基於Yii框架的PHP程序設計有所幫助。
您可能感興趣的文章:Yii2.0高級框架資料庫增刪改查的一些操作Yii2——使用資料庫操作匯總(增刪查改、事務)Yii2資料庫操作常用方法小結Yii2框架實現資料庫常用操作總結Yii2實現跨mysql資料庫關聯查詢排序功能代碼Yii+MYSQL鎖表防止並發情況下重復數據的方法Yii
連接、修改
MySQL
資料庫及phpunit
測試連接Yii實現MySQL多資料庫和讀寫分離實例分析Yii操作資料庫實現動態獲取表名的方法Yii操作資料庫的3種方法
『捌』 yii2 布局設置
1、類級別設置
屬性
設置布局 public $layout = 'login';
取消布局 public $layout = false;
2、方法級別
設置布局 $this->layout = 'login';
取消布局 $this->layout = false;
3、視圖級別
設置布局 $this->context->layout = 'login';
取消布局 $this->context->layout = false;
註:什麼都不設置為默認布局,讀取views/layouts/main.php文件作為布局文件
『玖』 在Yii2.0 中怎麼使用 sphinx 搜索
如何調用Sphinx
按上面配置,第5節點對資料庫進行了索引,通過Sphinx自帶的search(在bin/release目錄)就可以在命令行進行搜索:
(搜索CGArt)
windows上:
search -c d:/sphinx/sphinx.conf CGArt
Linux上:
cd /usr/local/sphinx
./bin/search -c sphinx.conf CGArt
運行後,系統提示一堆信息:
....
....
words:
1. 'cgart': 36 documents, 189 hits
這個表示庫中有36條記錄符合要求,出現CGArt的有189處。應用程序如果想調用Sphinx,可以從兩個方面:
一是通過Sphinx官方提供的API介面(介面有Python,Java,Php三種版本)
二是通過安裝SphinxSE(具體見1.2部分),然後創建一個中介sphinxSE類型的表,再通過執行特定的SQL語句實現。
通過官方API調用Sphinx(以PHP為例)
在sphinx安裝目錄有一個API目錄,裡面有三個PHP文件:test.php,test2.php和sphinxapi.php。 sphinxapi.php是sphinx調用介面封裝文件,test.php是一個在命令行下執行的查詢例子文件,test2.php是一個生成摘要的 例子文件。
在命令下行運行test.php(Linux上沒有API目錄,需要從源程序包中復制api目錄至/usr/local/sphinx)
Windows上:
D:\sphinx\bin\release>c:\php5.2\php.exe -c c:\php5.2\php.ini ..\..\api\test.php -i cgfinal CGartLinux上(php在/usr/local/php目錄,sphinx.conf在/usr/local/sphinx目錄):
cd /usr/local/sphinx
/usr/local/php/bin/php api/test.php -i cgfinal CGArtSphinx的API查詢介面主要有這些內容(其實對照 一下sphinxapi.php就清楚了):
//創建Sphinx的客戶端介面對象
$cl = new SphinxClient ();
//設置連接Sphinx主機名與埠
$cl->SetServer('localhost',3312);
//可選,為每一個全文檢索欄位設置權重,主要根據你在sql_query中定義的欄位的順序,Sphinx系統以後會調整,可以按欄位名稱來設定權重
$cl->SetWeights ( array ( 100, 1 ) );
//設定搜索模式,SPH_MATCH_ALL,SPH_MATCH_ANY,SPH_MATCH_BOOLEAN,SPH_MATCH_EXTENDED,SPH_MATCH_PHRASE
$cl->SetMatchMode(SPH_MATCH_ALL);
//設定過濾條件$attribute是屬性名,相當於欄位名(用SPH_MATCH_EXTENDED時),$value是值,$exclude是布爾型,
當為true時,相當於$attribute!=$value,默認值是false
$cl->SetFilter($attribute, $values, $exclude);
//設定group by
//根據分組方法,匹配的記錄集被分流到不同的組,每個組都記錄著組的匹配記錄數以及根據當前排序方法本組中的最佳匹配記錄。
//最後的結果集包含各組的一個最佳匹配記錄,和匹配數量以及分組函數值
//結果集分組可以採用任意一個排序語句,包括文檔的屬性以及sphinx的下面幾個內部屬性
//@id--匹配文檔ID
//@weight, @rank, @relevance--匹配權重
//@group--group by 函數值
//@count--組內記錄數量
//$groupsort的默認排序方法是@group desc,就是按分組函數值大小倒序排列
$cl->SetGroupBy($attribute, $func, $groupsort);
//設定order by的內容,第一個參數是排序方法名,值有
// SPH_SORT_RELEVANCE,SPH_SORT_ATTR_DESC,SPH_SORT_ATTR_ASC,SPH_SORT_TIME_SEGMENTS,SPH_SORT_EXTENDED
//$sortby的值如"HITS desc"
$cl->SetSortMode(SPH_SORT_EXTENDED, $sortby);
//set count-distinct attribute for group-by queries,$distinct為字元串
$cl->SetGroupDistinct ( $distinct );
//相當於mysql的limit $offset,$limit
$cl->SetLimits($start,$limit)
//$q是查詢的關鍵字,$index是索引名稱,當等於*時表查詢所有索引
『拾』 YII2高級版本前後台緩存問題求助
概述 這里只是簡單講一下用法,如果想更詳細的了解,去看 官方手冊 比較好。除了使用伺服器端緩存外, Web 應用還可以利用客戶端 緩存去節省相同頁面內容的生成和傳輸時間。通過配置 yii\filters\HttpCache 過濾器,控制器操作渲染的內容就能 緩存在客戶端。 示例說明 class TestController extends Controller{ // 該方法會在其他方法之前執行 public function behaviors() { // 聲明緩存配置 return [ // 需要注意的這里是二維數組 [ 'class' => 'yii\filters\HttpCache', // 設置需要載入的緩存文件 'only' => ['index'], // 設置需要緩存的控制器 'lastModified' => function(){ // 設置 Last-Modified 頭 return 1548922; }, 'etagSeed' => function (){ // 設置 ETag 頭 return 'hello'; } ] ]; } public function actionIndex(){ return $this->renderPartial('index'); } public function actionT...