Ich stehe vor dem folgenden Problem: In einer Tabelle mit geordneten Datensätzen möchte ich einen neuen Datensatz an einer bestimmten Stelle einfügen oder einen Datensatz kopieren/an eine andere Position verschieben.Yii2 falsche Route wie Controller/Controller/Aktion
In der Indexansicht habe ich die zusätzlichen Aktionsschaltflächen {new} {copy} {move} in der Rasteransicht definiert. Ein Klick auf eine dieser Routen führt zu einer neuen Ansicht namens (controller/select) mit einer Rasteransicht der gleichen Tabelle mit nur zwei Aktionsschaltflächen, {before} {after}, die angibt, ob der Datensatz über oder unter der Position platziert werden soll ausgewählter Datensatz
Klicken Sie auf eine dieser Schaltflächen Routen zu der Controller-Aktion erstellen (wenn zuvor wurde neu gewählt) oder die Controller-Aktion copy-move (controller/create oder controller/copy-move). Der Controller erledigt seine Arbeit und kehrt mit $ this-> redirect (['index']) zur Indexansicht zurück. Dies funktioniert ordnungsgemäß.
Nochmals auf einen der Aktionsschaltflächen in der Indexansicht klicken {new} {copy} {move} Ich sehe eine seltsame Route: controller/controller/select statt controller/select. Dieses Verhalten wird nur gestoppt, wenn ich die Indexansicht aus dem Menü aufruft, nicht durch Aktualisieren des Browsers.
Warum passiert das? Liegt es vielleicht daran, dass Sie sofort eine Rasteransicht erstellen, nachdem Sie zuvor eine Aktion in einer Rasteransicht ausgewählt haben? Und wie kann man dieses Verhalten vermeiden?
Dies ist der Arbeitsablauf:
call index view
click on action button {new} {copy} or {move}
create route controller/select
get the select view
in select view click on action button {before} or {after}
create route controller/copy or controller/copy-move
create a new record at the choosen position or copy/move it there
return $this->redirect(['index']) after controller has done his job
in index view again click onto action button {new} {copy} or {move}
create route controller/controller/select instead of controller/select which ends in a 404 error.
Wie generieren Sie den Link zu 'controller/select'? – gmc
Sein erzeugt als in index.php - in index.php: – chrisly49
@ gmc Sein erzeugt als solches: 'vor' => funktion ($ url, $ modell) { $ session = Yii :: $ app-> session; $ mode = $ session ['mode']; $ url = ($ mode === 'create')? 'create? idTo =': 'copy-move? idTo ='; Rückgabe Html :: a ('' .FA :: Symbol ('Upload'). '', $ url. $ Modell ['ID']. '& Position = vor', ['Titel' => 'Titel')]); – chrisly49