Frage an url, yii – Steuerungs-URL in Yii: controller / action / id to / id

2

Können wir die URL im Format anzeigen?controller/action/id zu/id in Yii? Ein Hauptproblem ist auch, dass ich dies nur auf dem spezifischen Controller / der Aktion tun muss.

Zum Beispiel: Wenn ich habe/user/post/ujjwal dann muss ich zeigen/ujjwal nur. Und wenn ich habe/image/display/ujjwal kann es dann so sein wie es ist?

Ich habe die URL-Verwaltung in Yii gelesen und verstehe, was dort angezeigt wird. Aber ich weiß nicht, wie ich die URL auf der Basis von steuern sollcontroller/action.

Jede Hilfe wäre dankbar.

Danke, Ujjwal

Was ich meinte war, dass ich keine mögliche nahe Lösung für mein Problem finden konnte. Oder vielleicht habe ich es nicht so gut verstanden, dass ich es nicht auf mein Problem beziehen konnte. Ujjwal Prajapati
Sie haben einen der Links kommentiert, dass die yii-Dokumentation nicht die Antwort auf Ihr Problem war. Bitte posten Sie den Auszug aus Ihrer Konfigurationsdatei in Bezug auf die URL-Formatierung. Orlymee

Deine Antwort

3   die antwort
0

Was Sie wollen, können Sie mit ein paar Nebenwirkungen tun. Wenn Sie dies in Ihreconfig/main.php:

        'urlManager'=>array(
        'urlFormat'=>'path',
        'showScriptName'=>false,
        'rules'=>array(
            'image/<action>/<username>' => 'image/action/username',
            '<username>' => 'user/post/username',
            ),
        ),

Stellen Sie zuerst alle Ihre genaueren Regeln auf, dann wird alles andere, was eine Einheit ist, ausgeführt/user/post/something.

1

In deinerconfig/main.php Versuchen

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
                        'rules'=>array(
                          'user/post/<user:\w+>'=>'<user>', //this should be the very first rule
                           //other rules 
                         ),
            ),
        ),
Ja, ich möchte nur, dass der Benutzername dem Benutzer / Profil / Benutzernamen zugeordnet wird, und wie von aslingga vorgeschlagen, hat es perfekt funktioniert. Danke für eure Hilfe !! Ujjwal Prajapati
Dies ist umgekehrt - der Client-zugewandte URI steht im Array an erster Stelle, dann das Controller / Action-Paar. Wenn Sie außerdem die allgemeinste Regel ganz oben setzen, wird sichergestellt, dass keine der anderen Regeln jemals erreicht wird. Ansari
Hmmm ... wie kommt es, dass diese Antwort nicht akzeptiert wurde, trotzdem wollte ich so etwas wie @UjjwalPrajapati nur für eine bestimmte URL machen und diese Art der Regelangabe hat den Trick gemacht ... Danke Rahul Thakur
Ich denke, Sie verwechseln das Wort spezifisch mit allgemein.user/post/<user:\w+>wird nur mit dem übereinstimmenuser Controllerpost Aktion, wenn es einen Wortparameter hat. adamors
Ja, aber OP möchte nicht auf die Aktion / user / post zugreifen, sondern nur, dass der Parametername in der URL enthalten ist. Ansari
2

oder mehr URL-Pfaden oder -Aktionen zuordnen. Wie wenn jemand darauf zugreift/my_username der wird weitergeleitet an/user/post/ujjwal oder/image/display/ujjwal. Die Anwendung wird aufgrund dieses Musters / dieser Regeln verwirrt.

Also empfehle ich dir das zu ändern/image/display/ujjwal zu einem anderen Muster / Regeln. Mögen/my_username/image

ich benutzeusername als Abfragezeichenfolge für den ausgewählten Benutzernamen.

'components'=>array(

            .....

            'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                '<username:[\w.]+>'=>'user/post',
                '<username:[\w.]+>/display'=>'image/display',
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),

            ....

Jemand hat diese ähnliche Frage schon einmal gestellt:So legen Sie eine SEO-freundliche URL wie twitter www.twitter.com/ <Name> mithilfe des YII-Frameworks fest

@ UjjwalPrajapati Cool !!! aslingga
Vielen Dank. Dies ist sehr hilfreich und ich habe Ihre Anweisung befolgt. Es klappt!! Ujjwal Prajapati

Verwandte Fragen