2015-11-04 92 views
0

我有一個問題可以在yii2的列表視圖中顯示JSON數據嗎?在列表視圖中顯示JSON數據yii2

另一個問題是,這裏是我的view代碼

<div class="panel-group" id="accordion"> 
    <?= \yii\widgets\ListView::widget([ 
    'dataProvider' => $dataProvider, 
    'itemView' => 'listview', 
    'layout' => "{pager}\n{items}\n{pager}", 
    ]); ?> 
</div> 

這裏是我的listview.php文件代碼

<div data-toggle="collapse" href="#collapse'<?= $model->id ?>'" id="title" class="panel-heading ads-heading"> 
    <h4 class="panel-title"><?= $model->title ?></h4> 
    <div class="pull-right"> 
     <button type="button" id="'<?= $model->id ?>'" onclick="AdsPost(this)" 
       class="checkin-btn btn btn-xs btn-danger"> View Ads 
     </button> 
    </div> 
</div> 

這裏是我的controller代碼

public function actionEvent() 
{ 
    $connection=Yii::$app->db; 
    $command = $connection->createCommand("SELECT * from Advertisement where maincategory=2 AND subcategory=5"); 
    $dataReader=$command->queryAll(); // execute a query SQL 

    $dataProvider = new ActiveDataProvider([ 
     'query' => $data, 

    ]); 
    return $this->render('event' ,['dataProvider' => $dataProvider]); 
} 

我也嘗試過的東西像這樣,但它的工作還不如

$query = new Query(); 
    $query ->select(['*']) 
     ->from('Advertisement') 
     ->where('maincategory=1') 

    $command = $query->createCommand(); 

    $data = $command->queryAll(); 

    $dataProvider = new ActiveDataProvider([ 
     'query' => $data, 

    ]); 
    return $this->render('index' ,['dataProvider' => $dataProvider]); 

那麼我在這裏做錯了什麼? 我問的問題來處理JSON數據以及因爲如果我可以直接發送JSON數據到Listview比它使我的生活很容易

如果它太複雜,我也可以用這個來管理。

回答

0

你可以試試兩個這樣

在這種firts的錯誤是的$數據的分配,而不是$ DataReader的

public function actionEvent() 
{ 
    $connection=Yii::$app->db; 
    $command = $connection->createCommand("SELECT * from Advertisement where maincategory=2 AND subcategory=5"); 
    $dataReader=$command->queryAll(); // execute a query SQL 

    $dataProvider = new ActiveDataProvider([ 
    'query' => $dataReader, 

    ]); 
    return $this->render('event' ,['dataProvider' => $dataProvider]); 
} 

$query = new Query(); 
$query->from('Advertisement') 
    ->where('maincategory = 2 and subcategory = 5'); 

$command = $query->createCommand(); 

$data = $command->queryAll(); 

$dataProvider = new ActiveDataProvider([ 
    'query' => $data, 

]); 
return $this->render('index' ,['dataProvider' => $dataProvider]);