Действие Update () в Yii, чтобы обновить обновление другой модели - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть такая база данных

 === Invoice ===
 id
 customer_id (FK)
 description

 === Customer ===
 id
 firstname
 lastname

У меня есть мультимодель для обеих форм, так что таблица Cstomer будет загружена в Invoice. Так что я могу легко получить доступ к двум моделям из одного представления. Для этого я сделал отношения в обеих моделях так же, как это В модели Invoice реалии выглядят так:

  public function relations()
  {
    return array(
    'customer'    =>  array(self::BELONGS_TO,'Customer','customer_id'),
    );
  }

В модели клиента такое отношение

public function relations()
  {
    return array(
      'invoice' => array(self::HAS_MANY, 'Invoices','customer_id')
    );
  }

Все работает нормально. Но когда я иду для actionUpdate () в файле контроллера Invoice есть модель клиента не определена. Так что я сделал это определить, как это

 public function actionView($id)
  {
    $this->render('view',array(
      'model'=>$this->loadModel($id),
      'customers'=>Customers::model()->findByPk(array('customer_id'=>$_GET['id']));
    ));
  }

Показывается как неопределенное смещение: 0. Я хочу здесь в ('customer_id' => $ _ GET ['id']) значение id, чтобы я мог легко показать и обновить значения для каждого идентификатора. Если я даю значение, как это

public function actionView($id)
  {
    $this->render('view',array(
      'model'=>$this->loadModel($id),
      'customers'=>Customers::model()->findByPk(28);
    ));
  }

Это легко показывает значение из идентификатора клиента. Итак, как получить эти значения? Любая помощь и предложения будут очень ценными.

1 Ответ

0 голосов
/ 14 февраля 2012

Попробуйте это

public function actionView($id)
  {
    $model = $this->loadModel($id);
    $this->render('view',array(
      'model'=>$model,
      'customers'=>Customers::model()->findByPk($model->customer_id);
    ));
  }
...