【问题标题】:Yii2 Remove initial SearchYii2 移除初始搜索
【发布时间】:2018-08-08 16:42:29
【问题描述】:

我在互联网上搜索了几个小时试图删除 yii2 gridview 上的初始过滤器。所有选项都指向在搜索中设置默认值。我希望在加载索引页面时,只有在用户搜索时才会在 gridview 中显示任何数据。非常感谢任何帮助。

https://github.com/yiisoft/yii2/issues/5668
https://stackoverflow.com/questions/33608796/default-filter-in-gridview-with-yii2


<?php
use yii\helpers\Html;
use yii\grid\GridView;

/* @var $this yii\web\View */
/* @var $searchModel frontend\models\AnimalSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = 'Animal and Animal Products Search';
$this->params['breadcrumbs'][] = $this->title;
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
    //////prevent the dropdown from being populated when the user click back
$(window).bind("pageshow", function() {
    $("#commodity").val('');
    $("#species").val('');
    $("#finality").val('');
    $("#origin").val('');
});
</script>  


<div class="animal-index">

    <h1 align="center"><?= Html::encode($this->title) ?></h1>
    <br>

    <?php echo $this->render('_search', ['model' => $searchModel]); ?>


    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        // 'filterModel' => $searchModel,
       //  'showHeader'=> false,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

           // 'id',

            'commodity',
            'species',
            'finality',
            'origin',
            // 'intendeduse',

            // 'risk',
            // 'conditions',
            // 'scu',
            // 'maf',
            // 'cities',
            // 'fisheries',
            // 'forestry',
            // 'comments',

            ['class' => 'yii\grid\ActionColumn',
                'visibleButtons' => [
             'update' =>false, // or whatever condition
              'delete' => false,
          ],
        ],
        ],
    ]); ?>
</div>

【问题讨论】:

  • 请在您的问题中添加网格配置和搜索模型
  • 更新了问题。只需要删除初始的gridview搜索

标签: php yii2-advanced-app


【解决方案1】:

您需要添加一个在不存在搜索参数时不会产生任何结果的条件

将您的搜索模型更新为类似的内容

public function search($params)
{
    $query = Model::find();
    
    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);
    
    // this ensures no rows are returned if nothing was submitted
    if (is_null($params) || empty($params)) {
        $query->where('0 = 1');
        return $dataProvider;
    }
    
    // ....
}

【讨论】:

  • 发布您的搜索模型会更有用。希望这个例子仍然有帮助
  • 这段代码运行良好。我能够搜索,它在加载时显示空值。谢谢csminb
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多