dongshen4129 2018-08-08 16:42
浏览 72
已采纳

Yii2删除初始搜索

I have been searching for hours on the internet on trying to remove the initial filter on yii2 gridview. All the options point on setting a default value in the search. I would like when the index page loads, that no data is shown in the gridview only when user search. Any assistance is highly appreciated.

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>
  • 写回答

1条回答 默认 最新

  • dtx3006 2018-08-08 17:03
    关注

    You need to add a condition that would yield no results whenever no search params are present

    update your search model to something like this

    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
        }
        // ....
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型