У меня есть такая база данных
+------------------+
| Invoices |
+------------------+
| id |
| customer_id (Fk) |
| description |
+------------------+
+------------------+
| Customers |
+------------------+
| id |
| firstname |
| lastname |
| description |
+------------------+
Таким образом, в соответствии с моим требованием я сделал многомодель . В этой модели многомодельных Клиентов загружается модель счета-фактуры. Теперь actionCreate () контроллера счета-фактуры выглядит следующим образом
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)
{
$customers->save(false);
$model->customer_id = $customers->getPrimaryKey();
$model->save(false);
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'customers' => $customers,
));
}
actionView () выглядит так
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
'customers'=>Invoices::model()->findByAttributes(array('id'=>$_GET['id']))->customer_id,
));
}
Теперь, когда я рендерил форму с помощью renderpartial и изменил свой код в View-файле следующим образом
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'id',
'customer_id',
array(
'label' => 'Firstname',
'value' => $customers->firstname,
),
array(
'label' => 'Lastname',
'value' => $customers->lastname,
),
array(
'label' => 'description',
'value' => $customers->description,
),
),
)); ?>
Это показало ошибку, подобную этой. Попытка получить свойство необъекта в строке 'value' => $ Customers-> firstname,
Так может кто-нибудь сказать мне, где не та часть? Любая помощь и предложения приветствуются.