1

Yii マルチモデル フォームでは、単一のビューで 2 つのモデルのフォームを作成するために actionCreate() を使用しました。? 一例を挙げましょう。データベースはこのようなものだと考えてください。

 === Project ===
  id
  task_id(FK)
  description

  === Task ===
  id
  name
  description

したがって、プロジェクト コントローラの actionCreate() では、コードは次のようになります。

    public function actionCreate()
  {
    $model=new Projects;
    $tasks=new Projects;

    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);
    if (isset($_POST['Projects'],$_POST['Tasks']))
    {
      $model->attributes = $_POST['Projects'];
      $tasks->attributes = $_POST['Tasks'];
      $valid = $model->validate();
      $valid = $tasks->validate();
      if($valid)
      {
        $model->save(false);
        $tasks->save(false);
        $this->redirect(array('view','id'=>$model->id));
      }
    }
    $this->render('create',array(
      'model'=>$model,
      'tasks'=>$tasks,
    ));
  }

これで、両方のモデルを作成する準備が整いました。では、actionView()とで何をactionUpdate()すればよいのでしょうか? 両方のモデルを宣言する方法は?

4

2 に答える 2

0

これって本当に違うの?ビュー/更新をロードするときは、どのモデルをロードするかを示す GET に ID が必要です。ActiveRecord を使用している場合、モデルは Projects::model()->findByPk($myId) になります。更新時には、create と同じように属性を割り当てることができますが、最初にモデルがデータベースからロードされていることを確認してください。

于 2012-02-17T14:19:59.943 に答える