在yii框架中是新的,我想为一个使用两个型号
这是我的控制器:
public function actionMoneyRequest()
{
// important
// farz kardam money request meghdare hesabe fardo etebare uno dare az avval @author Masoud
if(isset($_POST['id']))
{
$model=UserMoneyrequest::model()->findByAttributes(array('userid'=>$this->User()->id,'accountnumberid'=>$_post['id']));
if(isset($_POST['UserMoneyrequest']))
{
if($_POST['amount']<=$model->amount)
{
$model->amount=($model->amount-$_POST['amount']);
$model->save();
}
else
{
unset($_POST);
Yii::app()->user->setFlash('message', 'موجودی حساب کافی نمیباشد.');
$this->redirect(array(
'user/moneyrequest'
));
}
}
$this->render('moneyrequest',array(
'model'=>$model));
}
else
{
$accountnumber=UserAccountnumber::model()->findAllByAttributes(array('userid'=>$this->User()->id));
$this->render('moneyrequest',array(
'model'=>$accountnumber
));
}
}
首先,用户必须从下拉列表中选择他的帐号,当他选择他想要的帐号时,视图显示所选的帐号信息和
这是我的观点:
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
'htmlOptions'=>array(
'class'=>'js-validation-login form-horizontal push-30-t push-50',
)
));
// var_dump($model); exit;
// var_dump($_POST); exit;
//$options = array ('12' => 'Twelve', '10' => 'Ten');
echo $form->dropDownList('useraccountnumber','',array($model->attributes));
$this->endWidget();
?>
但我得到了这个错误:
致命错误:在C:''wamp''www''yii''framework''web''helpers''CHtml.php中的非对象上调用成员函数hasErrors()
为什么我会犯这个错误
当我更改以下行时:
echo$form->dropDownList('useraccountnumber','',array());
至:
echo CHtml::dropDownList('useraccountnumber','',数组($model->attributes));
没有错误,但我在下拉列表中看不到模型属性如何解决这个问题,以及如何使用下拉列表定义$form
我知道我有很多错误
感谢大家的帮助
错误与您没有将$model和$accountNumber交替使用有关。在这种情况下,当你需要/使用$model时,你的代码没有设置$accountNumber,相反,当你想要/使用$accountNumber时,你没有设置$model。
我认为你应该重新思考你的逻辑。解决方案可以是呈现单独的视图(例如:moneyRequest、moneyByAccount),每个视图都与正确的变量相关。。。