在我的网络应用程序中,我有两个模型,即" ProducerOffer"和"蔬菜"。我需要创建一个" ProducerOffer"的对象。里面"蔬菜"模型视图动作。我需要创建一个" ProducerOffer"的对象。里面的模型"蔬菜" model.But我正在查找此错误,无法跟踪源。 我得到的错误
Object of class ProducerOffer could not be converted to string
我在蔬菜控制器中写的代码
public function actionCreateOffer($id)
{
$model=$this->loadModel($id);
$ProducerOffer=new ProducerOffer;
if(isset($_POST['ProducerOffer'])AND (isset($_POST['Vegetable'])) )
{
$ProducerOffer->attributes=$_POST['ProducerOffer'];
$model->attributes=$_POST['Vegetable'];
$ProducerOffer->vegetable_id=$model->id;
if($model->validate() AND $ProducerOffer->validate()) {
$model->save();
$ProducerOffer->save();
}
if (($model->hasErrors() === false)&&($ProducerOffer->hasErrors()===false))
{
$this->redirect(Yii::app()->user->returnUrl);
}
}
else
{
Yii::app()->user->setReturnUrl($_GET['returnUrl']);
}
$this->render('offer',array('ProducerOffer'=>$ProducerOffer,'model'=>$model));
}
我为我的观点编写的代码名为" offer.php"。
<div style='padding-left:50px'>
<?php $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array('id'=>'non-ajax_form','enableAjaxValidation'=>false,)); ?>
<p class="help-block">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model,$ProducerOffer); ?>
<b><?php echo CHtml::encode($model->getAttributeLabel('name')); ?>:</b>
<?php echo CHtml::textField("Vegetable[name]",$model->name); ?>
<b><?php echo CHtml::encode($ProducerOffer->getAttributeLabel('offered_qty')); ?>:</b>
<?php echo CHtml::textField("ProducerOffer[offered_qty]",$ProducerOffer->offered_qty); ?>
<?php echo CHtml::encode($ProducerOffer->getAttributeLabel('unit_cost')); ?>
<?php echo CHtml::textField("ProducerOffer[unit_cost]",$ProducerOffer->unit_cost); ?>
<?php echo CHtml::encode($ProducerOffer->getAttributeLabel('unit_delivery_cost')); ?>
<?php echo CHtml::textField("ProducerOffer[unit_delivery_cost]",$ProducerOffer->unit_delivery_cost); ?>
<div class="form-actions">
<?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit', 'type'=>'primary', 'label'=> 'Save',)); ?>
<?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'reset', 'type'=>'primary', 'label'=> 'Reset')); ?>
<?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'link', 'type'=>'primary', 'label'=> 'Cancel','url'=>Yii::app()->user->returnUrl,)); ?>
</div>
<?php $this->endWidget(); ?>
</div>
我在ProducerOffer模型中的关系函数
public function relations()
{
return array(
'producerOfferVegetableRelation' => array(self::BELONGS_TO, 'Vegetable', 'vegetable_id'),
}
我在蔬菜模型中的关系函数
public function relations()
{
return array(
'producerOfferRelation'=> array(self::BELONGS_TO, 'Vegetable', 'id'),
);
}
我无法找出错误的来源?我该如何解决这个问题? 我在浏览器显示的这一行中收到错误
<?php echo $form->errorSummary($model,$ProducerOffer); ?>
在控制器中
$this->render('offer',array('ProducerOffer'=>$ProducerOffer,'model'=>$model));
我在这些方面遇到错误。
答案 0 :(得分:1)
错误可能在这一行:
<?php echo $form->errorSummary($model,$ProducerOffer); ?>
此方法的第二个参数是string $header
,但您传递的是$ ProducerOffer。
改变它:
<?php echo $form->errorSummary(array($model, $ProducerOffer)); ?>
或者像这样:
<?php echo $form->errorSummary($model); ?>
<?php echo $form->errorSummary($ProducerOffer); ?>
(亲自尝试,我不记得确切地将模型数组作为第一个参数传递)