W moim kontrolera I renderowane $ dataProviderJak używać niestandardowego filtru dla widgetu Yii2 ListView?
$searchModel = new StudentSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
Tu jest funkcja wyszukiwania z StudentSearch
public function search($params)
{
$query = Student::find();
$query->andFilterWhere([
'student_id' => $this->student_id,
'age' => $this->age,
]);
$query->andFilterWhere(['like', 'firstname', $this->firstname]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
if (!($this->load($params) && $this->validate())) {
return $dataProvider;
}
return $dataProvider;
}
w widoku użyłem $ dataprivider w widget ListView jak poniżej
<div class="listView">
<?php
echo ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => '_student_list',
]);
?>
</div>
W „_student_list .php "Wymieniłem studentów:
moje filtry
<div class="listFilter">
<input type="text" name="firstname"/>
<input type="text" name="age"/>
</div>
Teraz chcę filtrować uczniów według imion lub wieku. Jak mogę to zrobić? Jeśli masz jakieś rozwiązanie tego problemu, proszę o pomoc. Dziękuję Ci.
Proszę dodać kod modelu "StudentSearch". – arogachev