я хочу показать данные с помощью sqlDataProvider к GridView из другой таблицы и вычислить его, вот мой код в SiteController.php
public function actionSyahriyah() { $searchModel = new SyahriyahSearch(); $db = Yii::$app->db; $bayar = $db ->createCommand('SELECT sy.no_syahriyah, sy.banyak, sa.nama, sy.tgl, sa.tarif FROM santri sa, syahriyah sy WHERE sa.no_induk = sy.no_induk ORDER BY sy.tgl'); $dataProvider = new SqlDataProvider([ 'sql' => $bayar, 'pagination' => [ 'pageSize' => 5 ], ]); return $this->render('syahriyah',[ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }
и это GridView:
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ // ['class' => 'yii\grid\SerialColumn'], 'tgl', 'banyak', ], 'export' => false, ]); ?>
yii2: SqlDataProvider с нумерацией страниц и searcModel получать preg_match ошибки() ожидает параметр 2 будет строка, данный объект
1
A
ответ
0
Вы можете использовать DataProvider
<?php
$bayar = $db ->createCommand('SELECT sy.no_syahriyah, sy.banyak, sa.nama, sy.tgl, sa.tarif
FROM santri sa, syahriyah sy
WHERE sa.no_induk = sy.no_induk
ORDER BY sy.tgl');
$dataProvider = new SqlDataProvider([
'sql' => $bayar,
'pagination' => [
'pageSize' => 5
],
],
]);
?>
я использовать ваши советы, но Я получил ошибку _preg_match() ожидает, что параметр 2 будет строкой, объект указан в SqlDataProvider.php –
Прошу прощения, но вы, кажется, не связаны с ответом. Я не вижу никаких preg_match. В конечном итоге вы обновите сообщение и покажете связанный код .. – scaisEdge
Я отредактировал мое сообщение, –