ich ein Modul mit dem Namen Katalog mit, für den Moment, zwei Aktionen in der Standard-Controller erstellt haben:Yii2 url Manager analysieren nicht Urls mit get Parameter
- actionIndex
- actionLineProducts
in der Indexansicht ich einige Links haben, die das Line-Produkt Aktion ausgeführt, war die uRL das Ergebnis:
Url::to(['line-products', 'line' => $line->name])
mein Ziel ist es, einen Link wie
Katalog/{line-name}
wo Line-Name ist der Parameter sende ich zum Handeln LineProducts zu erhalten. Meine urlManager Konfigurationen sind:
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<moduls:catalogue>/<controller:default>/<action:line-products>/<line:*>' => '<module>/<line>',
'<controller:\w+>/<id:\d+>' => '<controller>/view/',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
],
.htaccess Konfigurationen:
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
Kann mir jemand erklären, warum meine URL immer mag, ist:
http://my-site.dev/catalogue/default/line-products?line= {line-name}
Danke für die Antwort! Ich setze die Regel auf meine UrlManager-Konfiguration, aber dies eine Ausnahme: preg_match(): Compilierung fehlgeschlagen: nichts zu wiederholen bei Offset 25 – MarBer
Hmm. Ich habe die Antwort aktualisiert. Probieren Sie das stattdessen. – topher