Hallo,
meine Seite besteht aus zwei Bereichen: ein Backend und ein Frontend.
Momentan taucht im Backend bei CRUD-Aktivitäten die ID (=Primary Key aus der DB) in der URL auf. Im Backend stört mich das nicht. Im Frontend will ich diese verschleiern / verstecken.
Dort will ich nicht die ID für loadModel() usw. verwenden, sondern den Namen des Objektes (also die Spalte "Name" in der DB).
Das Problem ist: Für das Backend funktioniert folgendes:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
Nur das Frontend bringt immer Fehler 400. Meine erste Lösung bestand darin, die Änderung einzufügen:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<game:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
Ich habe eine neue Route eingefügt und anstatt ID -> GAME verwendet. Dies war wohl zu einfach gedacht, da es nicht klappt.
Nochmal kurz und knapp:
Backend: path-format kann sein, muss nicht. ID in der URL ok.
Frontend: Path-Formatt muss, ID darf nicht in URL, sondern game=name1 usw.
Was im Backend verwendet wird (urlformat) ist mir egal, soland es funktioniert. Das Frontend ist das was zählt
Welche Lösung besteht für mein Problem?