2013-05-12 57 views
1

我是yii開發的新生兒,在使用cgridview顯示數據時出現問題,因爲它只顯示第一條記錄 汽車旅館,酒店,Roomcategory和大廳是PK和FK的模型路過... 代碼是在這裏我的cgridview在yii中只顯示一條記錄

$sponsorm = Motel::model()->find('MotelId=:MotelId', array(':MotelId'=>Yii::app()->user->id)); 
     $sponsorhotel = Hotel::model()->find('hotelId=:hotelId', array(':hotelId'=>$sponsorm->MotelId)); 
     $room = Roomcategory::model()->find('hotelId=:hotelId', array(':hotelId'=>$sponsorhotel->hotelId)); 
     $halls = Halls::model()->find('hotelId=:hotelId', array(':hotelId'=>$sponsorhotel->hotelId)); 

      echo CHtml::image(Yii::app()->request->baseUrl.'/img/4.png'); 

     $this->widget('zii.widgets.grid.CGridView', array(
     'id'=>'businessowner-grid', 
     'dataProvider'=>$room->search(), 
     //'filter'=>$sponsore, 
      'columns'=>array(
      'roomCategoryNames', 
      'noOfRooms', 
      'price', 

        ), 

       )); 


$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'businessowner-grid', 
    'dataProvider'=>$halls->search(), 
    //'filter'=>$sponsore, 
     'columns'=>array(
     'Type', 
     //'noOfHalls', 
     'seats', 
     'price', 

       ), 

      )); 

回答

2

,因爲你使用發現得到一個特定的記錄現在你發現只有一個記錄。所以,你分配該記錄數據模型變量,然後你做

$model->search(); 

這從搜索特定表的多個值,但您已設置的屬性,這樣,它匹配只有一個記錄。

要獲得莫泰gridview的數據使用下面的代碼:

$sponsorm = $dataProvider=new CActiveDataProvider('Motel', array(
    'criteria'=>array(
     'condition'=>'MotelId = :MotelId', 
     'params' => array(':MotelId'=>Yii::app()->user->id) 
    ), 
)); 

它做同樣的搜索(),但不同的是,搜索標準是不同的。您也可以使用下面的代碼。

$motelModel = new Model(); 
$motelModel->MotelId = Yii::app()->user->id; 

現在只有一個屬性被分配,一個是設置一個條件來匹配在MotelId字段中有這個用戶ID的所有行。

$modelModel->search(); 

此外,我看到你回聲之間的邏輯之間的東西。請不要這樣做。僅在視圖中輸出數據並將邏輯保留在視圖之外。 :)