Yii2.0踩坑記(持續(xù)更新)

  1. ActiveForm表單提交后,通過網(wǎng)頁中Network可知表單數(shù)據(jù)已經(jīng)向控制器提交。但是,控制器中卻接受不到數(shù)據(jù)。
    我遇到這個問題的原因是:在表單模型的類文件中沒有給表單的屬性設(shè)置規(guī)則,就是沒有使用rules()方法對屬性設(shè)置規(guī)則。以我遇到的問題為例:
public function rules()
{
     return [
          [['id', 'name', 'code', 'type'], 'required'],
     ]
}

只需要簡單的這樣寫就可以在控制器中獲取到表單數(shù)據(jù)了。經(jīng)過測試,在該方法中注釋掉的屬性都無法穿到控制器中。


2.在ActiveForm表單中使用dropDownList,比如下面的代碼:

類型:<?php echo $form->field($model, 'type')->dropDownList($class::$type,['prompt'=>'請選擇', 'style' => 'with:120px', 'class' => 'form-control']) ?>

在頁面中顯示幾條帶選的選項,如果選擇 '請選擇' 這個選項,后項后臺傳入:

''  //空,并不是null

如果選擇其他的選項,這傳入的是每個選項對應(yīng)的key,并使選項本身的value,這里是:

0 //第一個選項
1 //第二個選項
  //...

  1. 數(shù)據(jù)庫在 連表查詢 的時候,報如下錯誤:
Exception (Integrite constraint violation) 'yii\db\IntegrityException' with 
message 'SQLSTATE[23000]: Integrity constraint violation: 1052 Column 
'question_id' in where clause is ambiguous.
The SQL being executed was: SELECT COUNT(*) FROM `answer` LEFT JOIN `question` `q` ON `answer`.question_id = q.question WHERE `question_id` = '10''

這句話的主要意思是說,在 WHERE 子句中的 'question_id' 是模棱兩可的。
為什么會產(chǎn)生這樣的報錯信息呢?因為在這兩張表中均有 'question_id'字段,產(chǎn)生這樣的錯誤是因為傳給 SQL 語句的中,即 WHERE 子句中的 'question_id' 沒有指明是哪個表中的,從而導(dǎo)致不知道去哪一張表中查詢。
解決思路:給傳入的字段 'question_id' 加上標(biāo)識,區(qū)分是哪個表中的。
解決辦法: 其實在Yii中已經(jīng)封裝了解決的辦法。在 AnswerSearch.phpQuestionSearch.php 兩個搜索模型的查詢語句中加入

$query->andFilterWhere([
Answer::tableName(). '.question_id'  => $this->question_id
]);
$query->andFilterWhere([
Question::tableName(). '.question_id'  => $this->question_id
]);

即可區(qū)分兩個表(模型)中的字段。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • ??JavaScript 最初的一個應(yīng)用,就是分擔(dān)服務(wù)器處理表單的責(zé)任,打破處處依賴服務(wù)器的局面。 ??盡管目前的...
    霜天曉閱讀 763評論 0 3
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,939評論 1 92
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,215評論 8 265
  • 今天下定決心把王者榮耀從手機里邊卸載了。不知道從去年五月起手玩這個游戲到現(xiàn)在,我因為它荒廢了多少時光,上班的時候偷...
    隨風(fēng)Jeff閱讀 329評論 0 0

友情鏈接更多精彩內(nèi)容