Pytanie w sprawie url, yii – Kontrolowanie adresu URL w Yii: controller / action / id to / id

2

Czy możemy wyświetlić adres URL w formaciecontroller/action/id do/id w Yii? Ponadto jednym z głównych problemów jest to, że muszę to zrobić tylko na określonym kontrolerze / akcji.

Na przykład: jeśli mam/user/post/ujjwal potem muszę to pokazać/ujjwal tylko. A kiedy mam/image/display/ujjwal to może być tak, jak jest?

Przeczytałem zarządzanie adresami URL w Yii i zrozumiałem, co tam jest pokazane. Ale nie wiem, jak kontrolować adres URL na podstawiecontroller/action.

Każda pomoc byłaby doceniana.

Dzięki, Ujjwal

chodziło mi o to, że nie mogę znaleźć możliwego rozwiązania mojego problemu ... lub może nie rozumiałem tego tak dobrze, że nie mogłem odnieść go do mojego problemu ... Ujjwal Prajapati
skomentowałeś jeden z linków, że dokumentacja yii nie była odpowiedzią na Twój problem. Proszę zamieścić fragment swojego pliku konfiguracyjnego dotyczący formatowania adresu URL. Orlymee

Twoja odpowiedź

3   odpowiedź
1

W Twoimconfig/main.php próbować

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
                        'rules'=>array(
                          'user/post/<user:\w+>'=>'<user>', //this should be the very first rule
                           //other rules 
                         ),
            ),
        ),
Tak, chcę tylko, aby nazwa użytkownika była mapowana na użytkownika / profil / nazwę użytkownika i jak sugeruje aslingga, działała idealnie. Dzięki za pomoc chłopaki !! Ujjwal Prajapati
Jest na odwrót - URI klienta znajduje się na pierwszym miejscu w tablicy, a następnie para kontroler / akcja. Ponadto umieszczenie najbardziej ogólnej zasady na górze zapewni, że żadna z pozostałych zasad nie zostanie nigdy osiągnięta. Ansari
Myślę, że twoje mylące słowo specyficzne dla ogólnego.user/post/<user:\w+>pasuje tylko douser kontrolerpost akcja, gdy ma parametr słowa. adamors
Tak, ale OP nie chce w ten sposób uzyskiwać dostępu do akcji / user / post - chce, aby nazwa parametru znajdowała się w adresie URL. Ansari
Hmmm ... skąd ta odpowiedź nie została zaakceptowana, w każdym razie chciałem zrobić coś takiego jak @UjjwalPrajapati tylko dla konkretnego adresu URL i ten sposób określania reguły zrobił sztuczkę ... Dzięki Rahul Thakur
0

czego chcesz, można zrobić z kilkoma efektami ubocznymi. Jeśli umieścisz to w swoimconfig/main.php:

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

Najpierw umieść wszystkie bardziej szczegółowe reguły, a potem przejdzie do wszystkiego innego, co jest pojedynczą jednostką/user/post/something.

2

na dwie lub więcej ścieżek URL lub akcji. Jak wtedy, gdy ktoś wchodzi/my_username zostanie przekierowany do/user/post/ujjwal lub/image/display/ujjwal. Aplikacja zostanie pomylona z powodu tego wzorca / reguł.

Zalecam więc zmianę/image/display/ujjwal do innego wzoru / reguł. Lubić/my_username/image

używamusername jako ciąg zapytania dla wybranej nazwy użytkownika.

'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>',
            ),
        ),

            ....

Ktoś zadał to podobne pytanie przed:Jak określić przyjazny dla SEO adres URL, taki jak twitter www.twitter.com/ <name> za pomocą YII framework

Dziękuję Ci. Jest to bardzo pomocne i zastosowałem się do instrukcji. To działa!! Ujjwal Prajapati
@UjjwalPrajapati Cool !!! aslingga

Powiązane pytania