@Iossarian

Как использовать date-range вне GridView?

Добрый день. Стоит задача - подключить возможность выбора временного промежутка для отображения записей. Использую . Отобразить виджет нужно на обычной странице не индексовой с грид вью. Я так понимаю я могу на любую страницу передать $searchModel, которая выглядит следующим образом
public $createTimeRange;
    public $createTimeStart;
    public $createTimeEnd;
public function behaviors()
    {
        return [
            [
                'class' => DateRangeBehavior::className(),
                'attribute' => 'createTimeRange',
                'dateStartAttribute' => 'createTimeStart',
                'dateEndAttribute' => 'createTimeEnd',
            ]
        ];
    }
 public function rules()
    {
        return [
            [['createTimeRange'], 'match', 'pattern' => '/^.+\s\-\s.+$/'],
            [['createTimeStart', 'createTimeEnd'], 'date', 'format' => 'php:Y-m-d']
        ];
    }
$query->andFilterWhere(['>=', 'date_begin', $this->createTimeStart])
        ->andFilterWhere(['<=', 'date_end', $this->createTimeEnd]);

И во вьюхе вызываю виджет
<?=DateRangePicker::widget([
        'model'=>$searchModel,
        'attribute'=>'createTimeRange',
        'convertFormat'=>true,
        'startAttribute'=>'createTimeStart',
        'endAttribute'=>'createTimeEnd',
        'pluginOptions'=>[
            'timePicker'=>true,
            'timePickerIncrement'=>7,
            'locale'=>[
                'format'=>'Y-m-d h:i A'
            ]
        ]
    ]); ?>

Но, соответственно, ничего не происходит. Возможно, я путаю передаваемые атрибуты? Суть в том, что мне нужно пользователю дать возможно выбора периода с понедельника по воскресенье и по дефолту показывать записи за прошедшую неделю. В базе 2 поля - date_begin и date_end. Поля требуются для подстановки в ворд-шаблон. И вот по этим полям мне надо фильтровать вывод записей.
  • Вопрос задан
  • 16 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Кроме виджета нужна же и форма, которая отправит данные. В GridView есть js скрипт, который отправляет get запрос при изменении данных, а сам виджет ничего не отправляет. Допишите js скрипт отправки или вставьте в форму виджет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы