Yii 2.0 精簡筆記整理 數據庫增產改查

//獲取傳參,以及設置默認值
$request = /Yii::$app->request;
$id = $request->get('id',1);
$id = $request->post('id',1);
//判斷請求的類型
$id = $request->isGet;
$id = $request->isPost;
//獲取用戶IP
$ip = $request->userIP;

//渲染V層並傳遞參數
return $this->renderPartial('index',$arr);//不渲染父模板
return $this->render('index',$arr);//layout渲染父模板
compact('arr1','arr2',......);//數組組裝
//YII框架沒有模板引擎類似CI框架

//定義父模板
//1、建立模板
view/layout/home.php
//2、控制器定義公共屬性
public $layout = 'home';//用屬性的方法定義父模板

//模板之間的相互調用
<?=this->render('index');?>

//字符串過濾(V層)預防xss攻擊
<?php
use \Yii\helper\Html;
use \Yii\helper\HtmlPurifier;
?>
<?=Html::encode($str);?>//轉爲html實體輸出
<?=HtmlPurifier::process($str);?>//標籤過濾清楚

//自定義全局工具函數
//1、根目錄新建文件夾helper;
//2、創建function.php;
//3、入口文件index.php加入
require(__DIR__.'/../helper/function.php');
引入工具函數php文件即可

//model層 模型創建可以參考系統自帶的model,注意模型名稱與對應表名一致。
/config/db.php //配置數據庫信息
Article::findBySql($sql,[':id'=>$id])->all();//執行sql語句,第二個參數使用佔位符,防止sql注入。

//查詢
Article::find()->where()->all();//查詢多條
Article::find()->where()->asArray()->all();//返回數組(比對象節約內存)
Article::find()->batch(2);//獲取2條(將結果分批顯示,緩解內存壓力)
Article::find()->where()->one();//查詢單條
//where條件寫法
1、id = 5;
where([' id'=>5])
2、id >3;
where(['>',' id',5])
3、5>=id>=2;
where([' between',' id',2,5])
4、title like 巴菲特
where([' like',' title ','巴菲特'])
//簡便寫法
Article::findOne(5);//id = 5
Article::findAll(3,4,5);//id =3,4,5

//增加數據
$article = new Article();
$article->title = '標題';
$article->num= 3;
$data = $article->save();
//$data = $article->insert();//返回bool
$id = $article->attributes['id'];

//修改數據
$article = Article::findOne(5);
$article->title = '標題';
$article->num= 3;
$data = $article->save();//save()可以根據條件,自動判斷執行update還是insert。
//$data = $article->update();//返回bool
//更新單條數據
$article = Article::updateAllCounters(['num'=>1],['id'=>8]);//id = 8的字段自增1。

//刪除數據
$article = Article::findOne(5);
$article = Article::find()->where([' id' => 15])->one();
$data = Article[0]->delete();
//簡便寫法
$data = Article::deleteAll('id>:id and num<:num',[':id'=>13,':num'=>100]);

//關聯表一對多查詢hasMany--通過分類找文章
$category = Category::findOne(1);
$articles = $category->hasMany(Article::className(),['cate_id'=>'id'])->asArray();

//關聯表一對一查詢hasOne--通過文章找分類
$articles = Article::findOne(1);
$category = $articles ->hasOne(Category::className(),['id'=>'cate_id']);
//可以在model中定義方法,然後C中通過屬性訪問,自動調用方法。

//join--查找每一篇文章,並顯示其分類
$articles = Article::find()->with('catagory')->asArray()->all();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章