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.

 

 


images

Dodanie listy rozwijanej.



images

Efekt po zmianach w widgecie stronicowania.



2020-12-29   Ator: bronco-one

Kategoria:   yii   widget  


Ta strona używa plików cookies.    Nota prawna    Zarządzanie plikami cookies    AKCEPTUJĘ