Задать вопрос

Нестыковка ActiveForm \yii\widgets\LinkPager в yii2?

Как сделать чтоб при отправке на форме при помощи нажатия по постраничной навигации \yii\widgets\LinkPager сохранались занчнеия переменных модели ActiveForm .

вьюха- index.php
?php $form = \yii\widgets\ActiveForm::begin([
    'id' => 'my-form-id',
    
]); ?>

                    <?= $form->field($model, 'dwig')->textInput(['autofocus' => true,]) ?>

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

                   

	

    
 
<?php 
echo $form->field($model, 'kat')->widget(Select2::classname(), [
    'data' => \yii\helpers\ArrayHelper::map(
                                                    \frontend\models\category::find()->groupBY('name')->All(),
                                                    'name',
                                                    'name'
                                                ),
    'options' => ['placeholder' => 'Select a state ...'],
    'pluginOptions' => [
        'allowClear' => true
    ],
]);
?>



                    <div class="form-group">
                        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
                    </div>

              <?php $form->end(); ?>
     
								
								
 			
		<!-- START PAGE-CONTENT -->
		<section class="page-content">
		<?php if( !empty($hits) ): ?>
<div class="features_items"><!--features_items-->
    <h2 class="title text-center">Хиты продаж</h2>
    <?php foreach($hits as $hit): ?>
    <?php $mainImg = $hit->getImage();?>
    <div class="col-sm-4">
        <div class="product-image-wrfrontender">
            <div class="single-products">
		

                <div class="productinfo text-center">
                   
				   <?= Html::img($mainImg->getUrl('268x249'), ['alt' => $hit->name])?>
				   
					<p>Модель- <?= $hit->kat?></p>
					 <p>Дивгатель-<?= $hit->dwig?></p>
					 <p> Привод-<?= $hit->priw ?></p>
                    <h2>$<?= $hit->price?></h2>
                    <p><a href="<?= \yii\helpers\Url::to(['towar/view', 'id' => $hit->id]) ?>"><?= $hit->name?></a></p>
                    <a href="<?= \yii\helpers\Url::to(['cart/add', 'id' => $hit->id])?>" data-id="<?= $hit->id?>" class="btn btn-default add-to-cart"><i class="fa fa-shopping-cart"></i>Корзина</a>
                </div>
              
            </div>
            
        </div>
    </div>
	
          <?php $i++?>
            <?php if($i % 3 == 0): ?>
                <div class="clearfix"></div>
            <?php endif;?>
            <?php endforeach;?>
        <div class="clearfix"></div>
        <?php
        echo \yii\widgets\LinkPager::widget([
            'pagination' => $pages,
        ]);
        ?>
        <?php else :?>
        <h2>Здесь товаров пока нет......</h2>
    <?php endif;?>

Контролер TowarController.php
public function actionIndex(){
		
 $model = new Towar();

 
        if ($model->load(Yii::$app->request->post())) {
			$dwig = $model->dwig;
			$priw =$model->priw;
			
			$kat = [$model->kat];
			
           }
          else
		  {
			 $dwig = $model->dwig;
			$priw =$model->priw;
			
			$kat = [$model->kat];  
		  }
		   
 if ($kat != "") {$kats = implode('|', $kat);   }   
        
$query = Towar::find()->where(['hit' => '1']);
if (($dwig != "")) {
            $query = Towar::find()->where(['dwig' => $dwig]);
        }
if (($priw != "")) {
            $query = Towar::find()->where(['priw' => $priw]);
        }		
	if (($kats != "")) {
            $query = Towar::find()->where(['kat' => $kats]);
        }	
		 $countQuery = clone $query;
        $pages = new Pagination(['totalCount' => $query->count(), 'pageSize' => 3, 'forcePageParam' => false, 'pageSizeParam' => false]);
        $hits = $query->offset($pages->offset)->limit($pages->limit)->all();
       
        $this->setMeta('E-SHOPPER');
$email = Yii::$app->request->get('email');
if ($email!="")
{
$model = new Raspis;
// заполняем поля данными

$model->email = $email;
// выполняем сохранение
$model->insert();
}
        return $this->render('index', compact('hits','pages','kat','dwig','priw','model'));

модель
towar.php
namespace frontend\models;

use Yii;

/**
 * This is the model class for table "towar".
 *
 * @property string $id
 * @property string $category_id
 * @property string $name
 * @property string $content
 * @property double $price
 * @property string $keywords
 * @property string $description
 * @property string $img
 * @property string $hit
 * @property string $new
 * @property string $sale
 */
class Towar extends \yii\db\ActiveRecord
{
     public function behaviors()
    {
        return [
            'image' => [
                'class' => 'rico\yii2images\behaviors\ImageBehave',
            ]
        ];
    } 
   

    public function getCategory(){
        return $this->hasOne(Category::className(), ['id' => 'id']);
    }
    public static function tableName()
    {
        return 'towar';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
           
            [['content', 'hit', 'new', 'sale','kat','dwig','priw'], 'string'],
            [['price'], 'number'],
            [['name', 'keywords', 'description', 'img'], 'string', 'max' => 255],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
          
            'name' => 'Name',
            'content' => 'Content',
            'price' => 'Price',
            'keywords' => 'Keywords',
            'description' => 'Description',
            'img' => 'Img',
            'hit' => 'Hit',
            'new' => 'New',
            'sale' => 'Sale',
			'kat' => 'kat',
            'dwig' => 'dwig',
            'priw' => 'priw',
			
        ];
    }
}


Пример картинки:
вот
60a3aadc78ca4553765868.png
М ынажимаем на кнопку отрпвить и делаем поиск по модели ActiveForm переменной dwig и получаем вот-60a3ab6eeff4d494525610.png
Тперь жмем по страничной навигации \yii\widgets\LinkPager и получем вот что-
60a3abec32d2a885201972.png
Тоесть данные пременной модели dwig исчезли как сделать чтоб при щлче по страничной навигации данные пременной модели ActiveForm сохранялись?
  • Вопрос задан
  • 84 просмотра
Подписаться 1 Простой 10 комментариев
Пригласить эксперта
Ответы на вопрос 1
Постраничная навигация при переключении страницы подставляет параметры get-запроса, поэтому вам нужно чтобы форма отправляла get-запрос.
<?php $form = \yii\widgets\ActiveForm::begin([
    'id' => 'my-form-id',
    'method' => 'get'
]); ?>

В actionIndex() вместо данных из POST запроса обработать данные из GET-запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы