2016-09-05 6 views
0

私はJQuery UIのソート可能なリスト(私はYii2 JUIウィジェットを使用しています)をレンダリングして、データベーステーブルからのデータを取り込みたいと思います。私はデータベースからビューにデータを渡していて、それを変数に入れています。アイテムのHTML構造は次のようになります。Yii2レンダリングウィジェットを動的に

<div class="row row-item dist simple-border"> 
    <div class="col-md-4"> 
    <img alt="Bootstrap Image Preview" src="<IMAGE_PATH>" /> 
    </div> 
    <div class="col-md-8"> 
     <h4> 
     <ITEM DESCRIPTION> 
     </h4> 
    </div> 
</div> 

私の質問は:内のPHPコードを実行することは不可能であるとして、ウィジェット内の項目を移入するための最良の方法は何ですか。私の最初のアイデア

<?= yii\jui\Sortable::widget([ 
    'items' => [ 
    ------<expected foreach php loop for each model>------ 
     ['content' => 
     <This is where one HTML item goes> 
     ], 
    ------<end foreach>------ 
    ], 
    'options' => ['class' => 'connectedSortable',], 
    'clientOptions' => ['cursor' => 'move', 'connectWith' => '.connectedSortable'] 
]) ?> 

は、文字列として項目の内容を返す関数を作成することでしたが、それは良い、効率的な練習のように見えるしていません。どんなアイデアでも大歓迎です。よろしく。

編集:これまで、上記の項目を連結してレンダリングする関数を作成しました。それでも、私はこれが正しい方法だとは思わない。私はまだYiiにとって新しく、どんなヒントにも感謝しています。よろしく。

答えて

0

私は自分の問題に対してこのような解決策を見つけました。レビューして改善してください。

コントローラ

public function actionIndex() 
{ 
    $searchModel = new Exchange(); 
    $dataProvider = $searchModel->getOwnerItems(Yii::$app->request->queryParams); 
    $ownerItems = $this->getOwnerItems($dataProvider); 

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

} 

protected function getOwnerItems($dataProvider){ 
    $items=array(); 
    foreach($dataProvider->models as $model){ 
     $item=array('content' => '<div class="row row-item dist simple-border"> <div class="col-md-4"> <img alt="Bootstrap Image Preview" src="uploads/'.$model->image.'" /> </div> <div class="col-md-8"> <h4>'. $model->name .'</h4> </div> </div>'); 
     array_push($items,$item); 
    } 
    return $items; 
} 

ビュー

<?= yii\jui\Sortable::widget([ 
    'items' => $ownerItems, 
    'options' => ['class' => 'connectedSortable',], 
    'clientOptions' => ['cursor' => 'move', 'connectWith' => '.connectedSortable'] 
]) ?> 

私は、このソリューションの可能性不完全性の承知していますが、私は、現時点では他のアイデアを持っていません。よろしくお願いいたします。

関連する問題