First Model にレコードを保存する必要があります。約10個のフィールドがあります。ここで、2 番目のモデルに保存している 1 つのフィールドに必要なルールを適用する必要があり、3 番目のモデルからこのフィールドの値を取得しています (ドロップダウン フィールドです)。
どうすればこのフィールドを yii で必須にすることができますか??
誰でも助けてください..
どうもありがとう、
First Model にレコードを保存する必要があります。約10個のフィールドがあります。ここで、2 番目のモデルに保存している 1 つのフィールドに必要なルールを適用する必要があり、3 番目のモデルからこのフィールドの値を取得しています (ドロップダウン フィールドです)。
どうすればこのフィールドを yii で必須にすることができますか??
誰でも助けてください..
どうもありがとう、
モデルに追加の属性とルールを追加できます。データベース テーブルのフィールドに直接関連する属性だけを使用する必要はありません。基本的な例を見てみましょう。次のフィールドを持つユーザー (ユーザー) テーブルがあります。
また、構造を持つユーザー プロファイル (UserProfile) 情報を格納する別のテーブルがあります。
ユーザーがアカウントを作成すると、ユーザーの情報を取得するフォームが作成されます。User モデルには次のようなルールがあります。
array('email, password', 'required'),
array('email', 'unique', 'message'=>'Email already in use'),
...
次のように、国の属性をUser モデルに追加できます。
class User extends CActiveRecord {
public $country;
...
次に、ルールに新しい属性を追加できます。
array('email, password, country', 'required'),
array('email', 'unique', 'message'=>'Email already in use'),
...
国属性は、ユーザー モデルの一部になります。これをフォームに追加できます。
<?php echo $form->dropDownList($model,'country',CHtml::listData(Country::model()->findAll(),'id','country_name'),array('empty'=>'-- select a country --')); ?>
フォームを送信すると、$model->validate()
メソッドは国フィールドを検証します。次のように、これを 2 番目のモデル (UserProfile) に手動で保存できます。
if(isset($_POST['User'])){
if ($model->validate()){
$user_profile = new UserProfile;
$user_profile->user_id = $model->id;
$user_profile->country = $model->country;
$user_profile->save();
...
うまくいけば、それはあなたの質問に答えます。