2013-10-21 75 views
0

我得到一個錯誤
Fatal error: Call to a member function hasErrors() on a non-object in F:\xampp\yii\framework\web\helpers\CHtml.php on line 2253
當試圖訪問url http://localhost/happybox/index.php/site/cart/3。我查看文件cart.php的代碼是:Yii框架表單提交按鈕顯示錯誤

Hello, <?php echo ucwords(Yii::app()->user->name); ?>,<br/> 
This is your cart<br/> 
Click on Order to Place and Order.<br/> 

<?php 
$Orders = Orders::model()->findAll(array(
    'select'=>'products_id', 
    'condition'=>'users_id=:id && type=:type', 
    'params'=>array(':id'=>Yii::app()->user->id, ':type'=>'cart'), 
)); 

?> 
<?php 
if($Orders){ 
    foreach ($Orders as $order) { 
    echo '<br/>'.$order->products->title.'<br/>'.$order->products->description.'<br/>'; 

    } 
}else{ 
    echo 'Your Cart is Empty'; 
} 

?><br/><br/> 

<?php 
if($Orders){ 
    $form=$this->beginWidget('CActiveForm', array('id'=>'order-form')); 
    echo $form->hiddenField($model,'users_id',array('value'=>Yii::app()->user->id)); 
    echo CHtml::submitButton('Confirm Your Order'); 
    $this->endWidget(); 
} 
?> 

我控制器功能的代碼是

public function actionCart($id){ 
    if(Yii::app()->user->isGuest){ 
     $this->redirect('login'); 
    }else{ 
     $model=$this->loadModel($id); 
     if(isset($_POST['Orders'])) 
     {   
     //do something 
     } 
     $this->render('cart', array('model'=>$model)); 
    } 
} 

是否有人可以指出錯誤在此代碼,它非常非常對我很重要。請幫忙。

+0

像Telvin已經回答了,你需要修復這一行:'$模式= $模式= $這個 - > loadModel($ ID);''到$模式= $這個 - > loadModel($ ID);'。這應該可以解決你的問題。 – deacs

+0

我做到了,但是問題完好無損.. – Tushki

+0

您的視圖渲染到了某個點嗎?換句話說,錯誤只發生在你開始表單的地方(這裏:'$ form = $ this-> beginWidget('CActiveForm',array('id'=>'order-form'));')?或者頁面根本不渲染? – deacs

回答

0

我遇到了同樣的錯誤,當我創建了一個小窗口內hiddenField 。這樣一來,它的工作:

echo $form->hiddenField(
    **YourModelName::model()**, 
    'users_id', 
    array('value' => Yii::app()->user->id) 
); 
0

$model = $model=$this->loadModel($id);修復此行代碼和var_dump $模型,看看它返回,檢查它是否爲空或東西沒有的CActiveRecord

+0

我做到了,仍然沒有解決問題。另外,$ model不爲null,屬於CActiveRecord。 – Tushki