Ich arbeite an einem Projekt, in dem einige Daten angezeigt werden, ich verwende eine benutzerdefinierte Abfrage und speichert diese Daten in DataProvider. Übergeben Sie diesen DataProvider zum Anzeigen von Datei und Anzeigen mit einem Listview
. wie untenListview und benutzerdefinierte Datenprovider suchen yii2
<nav class="navbar navbar-fixed-top">
<form class="navbar-form navbar-left search-form" action="">
<div class="form-group"><input type="text" class="form-control app-search" placeholder="Search">
</div>
</form>
</nav>
<div class="panel-group" id="accordion">
<?= \yii\widgets\ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => 'eventlistview',
'layout' => "{items}",
]); ?>
</div>
Ich möchte für diese Listview
eine search
bar realisieren. Ich benutze keine SearchModel
, also bin ich verwirrt, wie kann ich das tun?
Hier ist mein action
Code.
public function actionEvent()
{
$this->layout = 'app';
if(isset($_GET['latitude']) && isset($_GET['longitude'])){
$query = new Query();
$query ->select(['e.*','COUNT(d.event_id) as checkins' ,'o.clubname',new Expression("case when c.id is not null then 1 else 0 end is_checkedin")])
->from('event e')
->innerJoin('organiser o', 'e.organiser_id = o.organiser_id')
->leftJoin('checkin c', 'c.event_id = e.id and c.user_id ='.$_GET['user_id'])
->leftJoin('checkin d', 'd.event_id = e.id')
->where('e.interest_id IN
(SELECT area_intrest.id FROM area_intrest, user WHERE FIND_IN_SET(area_intrest.id,user.area_intrest) AND user.id='.$_GET['user_id'].')')
->groupBy('e.id');
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
}
return $this->render('event' ,['dataProvider' => $dataProvider]);
}
Ich bin nur verwirrt, weil ich kein Such Modell hier bin mit so ich weiß nicht, wie ich title
der event
mit suchen.
Zwei Dinge ... 1) zeigen alle zugehörigen Aktionscode ... .2) Wie führen Sie die Anfrage für einen Filter aus Ihrer Sicht durch? – scaisEdge
@scaisEdge das ist der ganze Aktionscode, den es gibt. und ich bekomme die erforderlichen Daten von der URL mit 'GET'. Ich benutze keinen Filter. Ich kann den Code des Layouts hinzufügen, das ich "eventlistview" verwende, aber ich weiß nicht, wie das mein Problem lösen hilft. –
könnten Sie erklären, was $ _GET ['latitude'] und $ _ GET ['longitude'] sind und wo sie hereinkommen? ... weil sie in der Abfrage keinen Verweis auf diese Felder sehen – scaisEdge