2012-12-30 56 views
0

我應該爲模型類中的所有輸入元素定義規則嗎? 例如,模型窗體有2個輸入類型元素和一個textarea。 我可以只爲這兩種輸入類型定義規則,而不是針對textarea?我應該在模型類中定義哪些輸入規則?

我已經這樣做了,但textarea裏面輸入的文本不是保存,但如果我把一個規則,例如它的長度,它將被保存。

回答

3

如果您沒有爲屬性定義任何規則(或定義unsafe規則),那麼在批量分配($model->attributes = $_POST['ModelClassName'])期間將不會設置該屬性。這似乎是爲什麼你的textarea值沒有得到保存的最可能的原因。見Securing attribute assignments


Yii文檔建議僅爲接受用戶輸入的字段創建規則。不過,我發現指定所有屬性的規則很有用,都基於業務邏輯和基礎數據庫存儲(儘管我不喜歡同一個類必須擔心這兩個方面),然後將unsafe規則添加到不允許批量分配的領域。

相關問題