亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP的Yii框架使用中的一些錯誤解決方法與建議

2020-03-22 19:12:31
字體:
來源:轉載
供稿:網友
此文意在記錄 Yii 開發過程中的小問題解決方案,不全面,不權威,不是教程。自己寫過,覺得可以解決問題,以后也可能用上,就記記吧。 1. Yii 中 Js 和 Css 文件的引入。
我們就從最簡單的問題開始吧,說起來也不是問題,只是語法罷了。假設我們的 js 文件都放在和 protected 同一層的 js 文件夾里,css 文件都放在和 protected 同一層的 css 文件夾里,好吧,規范就是這樣的...那我們可以在對應的 view 界面按下面這樣寫,css 和 js 函數的參數是不同的哦...(之前因為這個調了一個小時..)
注冊 js 文件的第二個參數是 js 所放的位置,可選三個:CClientScript::POS_HEAD 放在 Head 部分 CClientScript::POS_BEGIN 放在 Body 開始處 CClientScript::POS_END 放在 Body 結束處,沒有特別要求就不用填了...注冊 Css 文件的第二個參數是 media,,有興趣的同學點這里,目前還是默認就好...
對于 Jquery 這樣的 js ,用 registerCoreScript 不會造成莫名奇妙的錯誤...//注冊 js 文件 Yii::app()- clientScript- registerScriptFile(Yii::app()- baseUrl.'/js/project1.js',CClientScript::POS_HEAD); //注冊 css 文件 Yii::app()- clientScript- registerCssFile(Yii::app()- baseUrl.'/css/project1.css'); //注冊 Jquery 文件 Yii::app()- clientScript- registerCoreScript('html' target='_blank'>jquery'); 2. Yii isNewRecord 修復
Yii 的 Model 的 isNewRecord 屬性是很好用的,可以根據這個屬性進行分情況討論。但是,假如我們開啟了事務機制或是其他情況,造成數據插入后又被回滾了,這時數據庫里沒有該條記錄,但是 isNewRecord 是 flase,即認為已經不是新紀錄了。解決方法是用主鍵去訪問數據庫,判斷究竟是不是新紀錄,而我們在用到這個屬性之前要先按下面處理一下。以下 Model 是 Post,主鍵是 id:if(!$model- isNewRecord) $db_exist = Post::model()- findByPk($model- if($db_exist == NULL) $model- isNewRecord = true;
3.Yii 生成 隱藏輸入域
雖然自己寫一個輸入域很容易(不就是 display:none 嘛),但是有時架不住需要按照 Yii 的表單代碼格式呀,反正就一句話... php echo $form- hiddenField($model,'name'); php if($model- isNewRecord) echo $form- hiddenField($model,'path',array('size'= 60,'maxlength'= 128,'id'= 'path1')); 4. Yii 生成下拉菜單
很多時候我們在 form 里需要一個下拉菜單,這時候 Chtml 的 listdata 就很好用的。假如我們數據庫里的字段只有很少的可能,比如 0 和 1,可以按下面寫:
echo $form- dropDownList($model,'is_marry',array('0'= '否','1'= '是')); 這時候,你看到的就是 是 和 否 的下拉菜單,選擇 '是' 提交的時候這個字段填的就是 1 ,'否' 就是 0 。當然,經常不只這么簡單,我們可以在 Model 里面添加一個函數用于生成下拉菜單的數組,然后在 view 里去調用就行了。這個函數的數據可以自己寫的,或者在數據庫查找得來的。下面用了 listdata, 具體意思是以 model 中 id 為 鍵, name 為值。/* 寫在 model 里 */ public function getUserOptions() $models = User::model()- findAll(); $models = User::model()- findAllByAttributes(array('is_regeister'= '1')); return CHtml::listdata($models, 'id', 'name'); /* 寫在 view 的界面里 */ echo $form- dropDownList($model,'user_id',User::model()- getUserOptions());
5.Yii 開啟事務機制
在你同時保存幾條記錄到數據庫時,你可能很有必要開啟事務機制。Yii 開啟事務機制很容易,只要三句話就夠了。/*開啟事務機制*/ $transaction = Yii::app()- db- beginTransaction(); /* 成功則 commit */ $transaction- commit(); catch(Exception $e) $transaction- rollBack(); 比較完整的像這樣:
if($_POST['ModelA']) /*開啟事務機制*/ $transaction = Yii::app()- db- beginTransaction(); try /*此處省略一堆邏輯*/ $modelA- save(); $modelB- save(); /* 成功則 commit */ $transaction- commit(); $this- redirect(array('view','id'= $model- id)); catch(Exception $e) $transaction- rollBack(); 不過我一般會像下面這樣,有什么好處請自行體會...if($_POST['ModelA']) /*開啟事務機制*/ $transaction = Yii::app()- db- beginTransaction(); try $validated = true; /*此處省略一堆邏輯*/ $valid = $modelA- save(); $validated = $valid & $validated; /*此處繼續省略一堆邏輯*/ $valid = $modelB- save(); $validated = $valid & $validated; /* 成功則 commit */ if($validated) $transaction- commit(); $this- redirect(array('view','id'= $model- id)); else /*不成功即回滾 */ $transaction- rollBack(); catch(Exception $e) $transaction- rollBack(); 6.關聯表查詢相同字段出錯。
有時候我們建了兩個表,但是兩個表有相同的字段,在用 CDbCriteria 進行 with 關聯查詢搜索時候,如果沒有進行額外設置,那會出現查詢錯誤,大概的意思就是 Mysql 語句模糊。這時候,我們在主表設置一個別名就好了,然后查詢相關字段的時候注意把 名字加上就行。

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97av在线影院| 亚洲欧美日韩一区二区三区在线| 97在线看福利| 亚洲欧洲国产一区| 青草青草久热精品视频在线观看| 久久韩国免费视频| 成人在线国产精品| 一区国产精品视频| 国产成人精品视频| 亚洲美女性生活视频| 欧美黄色片视频| 国产精品久久久久91| 欧美日韩ab片| 国产日韩欧美中文在线播放| 大胆人体色综合| 国产成人a亚洲精品| 久久露脸国产精品| 日本久久久久久久| 欧美日韩亚洲91| 亚洲自拍偷拍视频| 亚洲最新在线视频| 欧美一级淫片丝袜脚交| 第一福利永久视频精品| 日韩最新av在线| 在线精品视频视频中文字幕| 美女视频久久黄| 国产成人自拍视频在线观看| 亚洲成人av中文字幕| 精品av在线播放| 色综合久久悠悠| 日韩电影大全免费观看2023年上| 在线成人中文字幕| 日本久久久久久| 欧美精品免费在线观看| 欧美激情喷水视频| 欧美另类老肥妇| 日韩精品高清视频| 国产成人中文字幕| 日本道色综合久久影院| 国产国语刺激对白av不卡| 国内免费精品永久在线视频| 久久91精品国产| 亚洲视频一区二区| 在线观看视频亚洲| 国产精品精品一区二区三区午夜版| 成人a级免费视频| 亚洲精品97久久| 青青久久av北条麻妃黑人| 青青a在线精品免费观看| 国产一区二区三区在线播放免费观看| 91精品91久久久久久| 精品国内自产拍在线观看| 日韩成人av一区| 色综合久久中文字幕综合网小说| 久久精品国产久精国产思思| 日韩精品中文字幕有码专区| 欧美性猛交xxxx乱大交| 亚洲欧美日韩中文视频| 国产精品久久久久久中文字| 亚洲人线精品午夜| 亚洲欧美福利视频| 亚洲裸体xxxx| 精品无人国产偷自产在线| 国产在线视频不卡| 成人精品视频99在线观看免费| 亚洲аv电影天堂网| 精品国产成人av| 欧美一级淫片videoshd| 高清一区二区三区日本久| 国产精品福利在线观看网址| 亚洲影院高清在线| 91亚洲国产成人久久精品网站| 欧美乱人伦中文字幕在线| 欧日韩不卡在线视频| 在线亚洲午夜片av大片| 91精品国产91久久久久久最新| 国产亚洲精品一区二555| 国产一区二区三区中文| 欧美成年人网站| 日韩免费观看视频| 精品欧美激情精品一区| 97av在线视频免费播放| 91精品在线播放| 中文字幕亚洲二区| 96精品久久久久中文字幕| 国产精品网红福利| 亚洲男人天堂九九视频| 国产精品一区久久久| 日韩精品在线免费观看视频| 成人网在线观看| 奇米影视亚洲狠狠色| 尤物九九久久国产精品的特点| 国产精品久久久久久久一区探花| 欧美日本亚洲视频| 亚洲精品国产精品自产a区红杏吧| 另类图片亚洲另类| 成人美女免费网站视频| 欧美色视频日本高清在线观看| 国产精品久久久亚洲| 国产精品久久久久久久久久尿| 国产精品综合不卡av| 92裸体在线视频网站| 国产美女精彩久久| 精品爽片免费看久久| 自拍偷拍亚洲在线| 2019国产精品自在线拍国产不卡| 亚洲视频在线观看| 日韩免费观看高清| 国产成人在线一区| 欧美尺度大的性做爰视频| 国产自摸综合网| 国产精品久久久久一区二区| 久久中文字幕国产| www.亚洲成人| 国产精品久久激情| 国产精品羞羞答答| 国产91免费看片| 欧美一级电影免费在线观看| 久久夜色精品国产| 欧美日韩加勒比精品一区| 久久视频免费在线播放| 亚洲综合小说区| 国产视频久久久久| 日韩女优在线播放| 亚洲精品美女在线观看| 精品偷拍各种wc美女嘘嘘| 草民午夜欧美限制a级福利片| 欧美成人在线免费视频| 日韩精品www| 欧美极品少妇xxxxⅹ免费视频| 欧美激情2020午夜免费观看| 激情成人中文字幕| 亚洲国产精品热久久| 日韩高清a**址| 久久国产精品久久久久| 亚洲精品国产品国语在线| 亚洲色图第三页| 亚洲一区二区福利| 日本电影亚洲天堂| 亚洲精品国精品久久99热| 成人激情视频小说免费下载| 欧美精品在线视频观看| 国产欧美日韩精品专区| 欧美日韩国产综合新一区| 日韩欧美第一页| 日韩精品丝袜在线| 国产精品av免费在线观看| 26uuu另类亚洲欧美日本老年| 欧美在线视频在线播放完整版免费观看| 91精品国产综合久久久久久蜜臀| 神马久久桃色视频| xvideos亚洲人网站| 日韩精品视频在线观看免费| 欧美成人三级视频网站| 黑丝美女久久久| 狠狠色狠狠色综合日日五| 91精品国产综合久久男男| 91经典在线视频| 亚洲欧洲日产国产网站| 成人在线视频网站| 国产精品一区久久久| 91亚洲精品久久久久久久久久久久| 亚洲乱码一区av黑人高潮| 国产精品三级美女白浆呻吟|