【问题标题】:Yii2 Render widget dynamicallyYii2 动态渲染小部件
【发布时间】:2017-01-13 04:49:20
【问题描述】:

我想渲染 JQuery UI 可排序列表(我正在使用 Yii2 JUI 小部件),以填充数据库表中的数据。我将数据从数据库传递到视图并将其保存在变量中。项目 HTML 结构如下所示:

<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>

我的问题是:在 Widget 中填充项目的最佳方式是什么,因为在其中执行 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 的新手,如果有任何提示,我将不胜感激。问候。

【问题讨论】:

    标签: php jquery-ui yii2


    【解决方案1】:

    我已经为我的问题找到了这样的解决方案,请随时查看和改进它。

    控制器

    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']
    ]) ?>
    

    我知道此解决方案可能存在缺陷,但目前我没有其他想法。问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多