0

次のデータベースの場合:

TABLES:
user: [id,username]
project: [id,name]
project_user_assignment: [user_id,project_id,role]

新しいプロジェクトが作成されているときに、プロジェクトを管理するために使用可能なユーザーを含むドロップダウンを表示し、プロジェクトを保存するときに、project_user_assignmentに行を挿入します。

[user_id、project_id、'マネージャー' ]

私はyiiを使い始めたばかりで、どこ(class、method)に挿入を実行する必要があるのか​​、挿入の瞬間にクエリが失敗した場合にエラーを返す方法がわかりません。

4

1 に答える 1

1

ドロップダウン リストを表示するには、次のコードを使用できます。

<?php echo CHtml::dropDownList(null, 
     'type',
     CHtml::listData(
        User::model()->findAll(),
        'id',
        'username',
     ),
     array('empty' => 'Select a manager from the list ... ', 'id'=>'manager_list')
  );?>

project_user_assignment モデルの対応するフィールドを更新するには、次を使用します。

 <?php
      <div class="row">
              <?php echo $form->labelEx($model,'user_id'); ?> // Here I assume you have the $model variable set to Project_user_assignemenet ... if not (which probably is the case since you are creating a new project, set a new $model2 variable in the controller and use $model2 instead of $model)
              <?php echo $form->textArea($model,'user_id'); ?>
              <?php echo $form->error($model,'user_id'); ?>
      </div>
 ?>
 <script>
     $('#manager_list').on('change', function(e) {
             $('#Project_user_assignemenet_user_id').val($(this).val());  // Here id maybe wrong! Check them.
             return true;
     });
</script>

そして最後に、コントローラーでモデルを保存するだけです。

于 2012-05-08T18:38:01.567 に答える