Skip to main content

CRUD generator issue

In versie 2.0.43 van het Yii framework zit een foutje die soms optreed. Helaas treedt deze fout ook op bij de World database.

Nieuwe fout (urlCreator)

Deze fout is opgelost, maar er zit nu een andere fout in de Yii CRUD generator. Nadat de CRUD is gemaakt krijg je een foutmelding. Deze gaat over de index.php file van de view.

In dit voorbeeld moet je het woord Country weghalen.

image-1655735527573.png

Of in zijn algemeenheid, stel je hebt een CRUD gemaakt voor Abc

Vervang dan dit

'urlCreator' => function ($action, Abc $model$key$index$column) {

in

'urlCreator' => function ($action$model$key$index$column) {

'Abc' is in dit voorbeeld weggehaald.
(in de foutmelding staat het regelnummer en de locatie van de file waar deze regel staat).

Wat is de fout?

Als je op het overzicht (van bijvoorbeeld countries) op het oogje rechts op de pagina klikt, dan krijg je een foutmelding. View, update en delete werken niet of slecht gedeeltelijk.

Wat is de oorzaak?

Als de primary key van een tabel niet id heet dan kan het fout gaan. De fout zit in de crud generator template.

Work around?

Je kunt een oude crud generator installeren. Hieronder wordt uitgelegd hoe dat moet.

Installeren oude CRUD generator template

Lees elke stap goed en werk heel nauwkeurig, we gaan namelijk de werking van Yii hacken.

We maken gebruik van de CRUD generator template 2.0.37

Stap 1

Download de zip file die in deze les staat.

Stap 2

Ga vanuit de project folder naar de volgende directory:

vendor\yiisoft\yii2-gii\src\generators

In deze folder zie je het volgende:

image-1635448540144.png

Stap 3

Hernoem de crud folder in crud.org, en

Stap 4

zet de crud folder uit de zip file in de folder. Het ziet er dan zo uit:

image-1635448675537.png

Stap 5

Maak via de crud generator opnieuw de crud. Eventuele aanpassingen worden dan overschreven.