W laravel, dany adres URL jest kierowany do określonej metody kontrolera. Wewnątrz tej metody chcę zwrócić odpowiedź tak, jakby użytkownik odwiedził inną trasę. Mogę to zrobić tak:Jak wewnętrznie przekierować wywołanie laravel (bez przekierowania)?
return App::make('OtherController')->otherMethod();
jednak, to zależy od mojego hardcoding z klasy i metody nazwy Chcę wysłać im. Wolałbym, aby wysłać je do innego kontrolera określonego przez nazwę trasy, a nie do nazwy klasy kontrolera. Jak mogę to zrobić?
Jedną z możliwości jest , z tym wyjątkiem, że a) jest to rzeczywiste przekierowanie, co oznacza, że zwiększa czas wczytywania strony i zastępuje wyświetlany URL, oraz b) utrudnia przesyłanie danych POST. Więc nie chcę tego robić.
Jak mogę połączyć się z kontrolerem, znając tylko nazwę trasy, z którą jest połączony?
w laravel 5 Zastosowanie $ request = Zapytanie :: create ('/ wewnętrzne/location', 'get'); $ response = Route :: dispatch ($ request); – Mruf
To również działa dobrze w Laravel 4. Route :: get ('events', ['as' => 'events', function() { \t \t $ request = Request :: create (URL :: toSite ('lp/events'), 'GET '); \t \t return Route :: dispatch ($ request); \t}]); –