Yii2 - поиск параметров со ссылкой - PullRequest
0 голосов
/ 22 июня 2019

Мне нужно реализовать поиск по атрибуту «год», но мне нужно это в ссылках (например, когда я нажимаю на ссылку «2017», $ dataProvider возвращает только записи с «год» = «2017»), в индексе. .php у меня есть:

<div class="y-index">

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

    <p>
        <?= Html::a(Yii::t('app', 'Create Oficios Apqe'), ['create'], ['class' => 'btn btn-success']) ?>
    </p>

<?php Pjax::begin(); ?>    <?= GridView::widget([
        'dataProvider' => $dataProvider,
        //'filterModel' => $searchModel,
        'columns' => [
                'id',
                'name',
                'minuta',
                'year',
            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
<?php Pjax::end(); ?>

</div>

_search.php

<div class="y-search">

    <?php $form = ActiveForm::begin([
        'action' => ['index'],
        'method' => 'get',
    ]); ?>


    <?= $form->field($model, 'id') ?>

    <?= $form->field($model, 'name') ?>

    <?= $form->field($model, 'minuta') ?>

<?= Html::a('2019', ['index', 'year' => '2019'], ['class' => 'year label label-efault', 'id' => '2019']) ; ?>
<?= Html::a('2018', ['index', 'year' => '2018'], ['class' => 'year label label-default', 'id' => '2018']) ; ?>
<?= Html::a('2017', ['index', 'year' => '2017'], ['class' => 'year label label-default', 'id' => '2017']) ; ?>


    <div class="form-group">
        <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?>
        <?= Html::a(Yii::t('app', 'Reset'), [Yii::$app->controller->action->id], ['class' => 'btn btn-default']) ?>
    </div>

    <?php ActiveForm::end(); ?>

</div>

мне нужен пример с сайтом из yii:

enter image description here

когда я нажимаю в левом меню в опции "Учебное пособие", ссылка устанавливается "https://www.yiiframework.com/wiki?category=3&version=2.0";

enter image description here и после того, как я щелкаю во мне меню "AJAX", ссылка добавляется и устанавливается на "https://www.yiiframework.com/wiki?tag=ajax&category=3&version=2.0";

enter image description here

В основном мне нужен параметр формы поиска "year" со ссылкой и с объединенными параметрами из формы "_search.php".

Ответы [ 2 ]

0 голосов
/ 22 июня 2019

Вам просто нужно удалить action из формы _search.php, которую он автоматически отправит текущему действию, и к ней добавится текущая строка запроса с новыми параметрами поиска, переданными из формы.

Просто измените

<?php $form = ActiveForm::begin([
     'action' => ['index'],
     'method' => 'get',
]); ?>

на

<?php $form = ActiveForm::begin([
     'method' => 'get',
]); ?>
0 голосов
/ 22 июня 2019

Вы можете передать массив в качестве второго параметра.

Html::a() использует yii\helpers\Url::to() на фоне для создания ссылки, docs .Вы можете использовать любые параметры, которые вы хотите передать в виде массива.

Html::a(
    '2017', 
    ['', 'year' => '2017'], 
    ['class' => 'year label label-default', 'id' => '2017']
) ; 
...