モデル クラスのすべての入力要素に対してルールを定義する必要がありますか? たとえば、モデル フォームには 2 つの入力タイプ要素とテキストエリアがあります。textarea ではなく、これら2つの入力タイプのルールを定義できますか?
私はそうしましたが、テキストエリア内に入力されたテキストは保存されませんが、たとえば長さのルールを設定すると保存されます。
モデル クラスのすべての入力要素に対してルールを定義する必要がありますか? たとえば、モデル フォームには 2 つの入力タイプ要素とテキストエリアがあります。textarea ではなく、これら2つの入力タイプのルールを定義できますか?
私はそうしましたが、テキストエリア内に入力されたテキストは保存されませんが、たとえば長さのルールを設定すると保存されます。
属性のルールを定義しない (またはルールを定義するunsafe
) 場合、その属性は一括割り当て中に設定されません ( $model->attributes = $_POST['ModelClassName']
)。これが、テキストエリアの値が保存されない最も可能性の高い理由のようです。属性割り当ての保護を参照してください。
Yii のドキュメントでは、ユーザー入力を受け取るフィールドのルールのみを作成することを提案しています。unsafe
ただし、ビジネス ロジックと基礎となるデータベース ストレージの両方に基づいてすべての属性のルールを指定すると便利であることがわかりました (ただし、同じクラスがこれらの両方の側面を気にする必要があるという事実は好きではありません)。一括代入が許可されないフィールド。