У меня есть база данных, как это
==== Invoices ====
id
costumer_id
description
==== Costumers ===
id
firstname
lastname
Теперь я установил соотношение между моделями так же, как это. В моделях счетов-фактур это соотношение выглядит так
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')
);
}
Теперь, когда мое отношение определено, один клиент имеет много счетов, и счет принадлежит клиенту.
Теперь я сделал многомодель и загрузил модель Costumer в модель Invoice, вот так.
public function actionCreate()
{
$model = new Invoices;
$customers = new Customers;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if (isset($_POST['Invoices'],$_POST['Customers']))
{
$model->attributes = $_POST['Invoices'];
$customers->attributes = $_POST['Customers'];
$valid = $model->validate();
$valid = $customers->validate();
if($valid)
{
$model->save(false);
$customers->id = $model->customer_id;
$customers->save(false);
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'customers'=>$customers,
));
}
Здесь все в порядке. Я могу легко вставить данные для обеих моделей. Но моя проблема заключается в том, что когда я вставляю данные из многомодели Invoice, идентификатор внешнего ключа не меняется. Это показывает ноль каждый раз. Может кто-нибудь сказать мне, где я ошибаюсь. Любая помощь и предложения будут очень полезны.