Trong điều khiển của tôi, tôi trả $ dataProviderLàm cách nào để sử dụng bộ lọc tùy chỉnh cho tiện ích ListView yii2?
$searchModel = new StudentSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
Đây là chức năng tìm kiếm của 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;
}
theo quan điểm của tôi đã sử dụng $ dataprivider trong widget ListView như dưới đây
<div class="listView">
<?php
echo ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => '_student_list',
]);
?>
</div>
Trong '_student_list .php 'Tôi đã liệt kê các sinh viên
bộ lọc của tôi
<div class="listFilter">
<input type="text" name="firstname"/>
<input type="text" name="age"/>
</div>
Bây giờ tôi muốn lọc Học sinh theo tên hoặc tuổi. Tôi có thể làm cái này như thế nào? Nếu bạn có bất kỳ giải pháp cho vấn đề này xin vui lòng giúp đỡ. Cảm ơn bạn.
Vui lòng thêm mã của mô hình 'StudentSearch'. – arogachev