In laravel, un determinato URL viene instradato a un metodo di controller specifico. All'interno di questo metodo, voglio restituire la risposta come se l'utente avesse visitato un percorso diverso. Posso fare questo in questo modo:Come reinstradare internamente una chiamata laravel (senza reindirizzamento)?
return App::make('OtherController')->otherMethod();
Tuttavia, che dipende dal mio hardcoding i nomi delle classi e il metodo che voglio mandarli a. Preferirei inviarli a un altro controller identificato dal nome della rotta, piuttosto che al nome della classe controller. Come lo posso fare?
Una possibilità è a return Redirect::route($otherRoute)
, tranne che a) questo è un reindirizzamento effettivo, il che significa che si aggiunge al tempo di caricamento della pagina e sostituisce l'URL che vedono, e b) rende difficile trasferire i dati POST. Quindi, non voglio farlo.
Come posso chiamare un controller, conoscendo solo il nome del percorso a cui è collegato?
in laravel 5 uso $ request = Richiesta :: creare ('/ interno/posizione', 'Get'); $ response = Route :: dispatch ($ request); – Mruf
Funziona anche con Laravel 4. Route :: get ('events', ['as' => 'events', function() { \t \t $ request = Request :: create (URL :: toSite ('lp/events'), 'GET '); \t \t percorso di ritorno :: dispatch ($ richiesta); \t}]); –