Aplikacja biblioteka - dostosowanie panelu administracyjnego.
Dzięki zastosowaniu gii stworzyliśmy część strony administracyjnej pozwalającej na zarządzanie zbiorem książek. Możemy teraz dodawać, usuwać oraz modyfikować dane. Dotyczy to również danych użytkowników biblioteki jak i firm świadczących dla niej usługi. Aby praca była wygodna musimy nasze formularze odpowiednio dostosować. Między innymi wprowadzimy bardziej stosowne nazwy, a tam gdzie jest to niezbędne zamienimy wyświetlanie id na nazwę oraz dodamy w niektórych przypadkach własne stronicowanie.
Przykłda zmian w pliku _form.php dla formularza dodającego książki.
use yii\helpers\ArrayHelper;
use app\models\Dzial;
use app\models\StanKsiazki;
<?= $form->field($model, 'id_dzial')->dropDownList(
ArrayHelper::map(Dzial::find()->all(), 'id', 'nazwa'),
['prompt'=>'Wybierz']) ?>
<?= $form->field($model, 'id_stan')->dropDownList(
ArrayHelper::map(StanKsiazki::find()->all(), 'id', 'stan'),
['prompt'=>'Wybierz']) ?>
Efektem wprowadzonych zmian są listy rozwijane oraz wyświetlanie nazw zamiast id. Innym ważnym elementem będzie wprowadzenie stronicowania. Do tej pory mamy jedną listę, która wraz z pojawianiem się kolejnych pozycji staje się bardzo niewygodna. Aby to zmienić w plikach kontrolerów musimy dokonać pewnych korekt.
Przykład zmiany w pliku KsiazkiController.php. Akcja index jest odpowiedzialna za generowanie listy.
public function actionIndex()
{
$searchModel = new KsiazkiSearch();
/* $dataProvider = $searchModel->search(Yii::$app->request->queryParams);*/
$dataProvider = new ActiveDataProvider([
"query" => Ksiazki::find(),
"pagination" =>[
"pagesize"=> 5,
] ,
]);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Zmiany w pliku views/ksiazki/index.php, który jest powiązany z powyższą akcją.
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'isbn',
'tytul',
'autor',
'id_dzial',
//'id_stan',
['class' => 'yii\grid\ActionColumn'],
],
"pager"=>[
"prevPageLabel" =>"Poprzednia",
"nextPageLabel" =>"Następna",
"firstPageLabel" =>"Pierwsza",
"lastPageLabel" =>"Ostatnia",
"options" =>["style" =>"margin-left:200px;", "class" =>"pagination",],
]
]); ?>
Całość kodu można zobaczyć na github.
Dodanie listy rozwijanej.
Efekt po zmianach w widgecie stronicowania.
2020-12-29 Ator: bronco-one
Aplikacja biblioteka - dostosowanie panelu administracyjnego.
Dzięki zastosowaniu gii stworzyliśmy część strony administracyjnej pozwalającej na zarządzanie zbiorem książek. Możemy teraz dodawać, usuwać oraz modyfikować dane. Dotyczy to również danych użytkowników biblioteki jak i firm świadczących dla niej usługi. Aby praca była wygodna musimy nasze formularze odpowiednio dostosować. Między innymi wprowadzimy bardziej stosowne nazwy, a tam gdzie jest to niezbędne zamienimy wyświetlanie id na nazwę oraz dodamy w niektórych przypadkach własne stronicowanie.
Przykłda zmian w pliku _form.php dla formularza dodającego książki.
use yii\helpers\ArrayHelper;
use app\models\Dzial;
use app\models\StanKsiazki;
<?= $form->field($model, 'id_dzial')->dropDownList(
ArrayHelper::map(Dzial::find()->all(), 'id', 'nazwa'),
['prompt'=>'Wybierz']) ?>
<?= $form->field($model, 'id_stan')->dropDownList(
ArrayHelper::map(StanKsiazki::find()->all(), 'id', 'stan'),
['prompt'=>'Wybierz']) ?>
Efektem wprowadzonych zmian są listy rozwijane oraz wyświetlanie nazw zamiast id. Innym ważnym elementem będzie wprowadzenie stronicowania. Do tej pory mamy jedną listę, która wraz z pojawianiem się kolejnych pozycji staje się bardzo niewygodna. Aby to zmienić w plikach kontrolerów musimy dokonać pewnych korekt.
Przykład zmiany w pliku KsiazkiController.php. Akcja index jest odpowiedzialna za generowanie listy.
public function actionIndex()
{
$searchModel = new KsiazkiSearch();
/* $dataProvider = $searchModel->search(Yii::$app->request->queryParams);*/
$dataProvider = new ActiveDataProvider([
"query" => Ksiazki::find(),
"pagination" =>[
"pagesize"=> 5,
] ,
]);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
Zmiany w pliku views/ksiazki/index.php, który jest powiązany z powyższą akcją.
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'isbn',
'tytul',
'autor',
'id_dzial',
//'id_stan',
['class' => 'yii\grid\ActionColumn'],
],
"pager"=>[
"prevPageLabel" =>"Poprzednia",
"nextPageLabel" =>"Następna",
"firstPageLabel" =>"Pierwsza",
"lastPageLabel" =>"Ostatnia",
"options" =>["style" =>"margin-left:200px;", "class" =>"pagination",],
]
]); ?>
Całość kodu można zobaczyć na github.

Dodanie listy rozwijanej.

Efekt po zmianach w widgecie stronicowania.
2020-12-29 Ator: bronco-one