Prendendo dal getting started ho ;
<?php
namespace app\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
class CountryController extends Controller
{
public function actionIndex()
{
$query = Country::find();
$pagination = new Pagination([
'defaultPageSize' => 5,
'totalCount' => $query->count(),
]);
$countries = $query->orderBy('name')
->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('index', [
'countries' => $countries,
'pagination' => $pagination,
]);
}
}
Mettiamo il caso però che io voglia solo determinate città , modificherei tutto così :
public function actionTesting(){
//trovo tutti irecord di film con attivo==1
$query = Country::find()->where(['attivo' =>1]) ->orderBy('data_ins desc')->all();
$count= Country::find()->where(['attivo' =>1])->count();
$pagination = new Pagination([
'defaultPageSize' => 5,
'totalCount' => $count,
]);
$countries = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('testing',[
'countries'=>$countries,
'pagination' => $pagination
]);
}
L’errore che ho è Call to a member function offset() on a non-object
Il problema è perchè se nella view uso il primo metodo e poi metto un if per la visualizzazione la paginazione viene sbagliata …
Come posso fare ?