Intereting Posts

Как направить GET и POST для одного шаблона в Laravel?

Кто-нибудь знает какой-либо путь в Laravel 4, который объединяет эти 2 строки в один?

Route::get('login', 'AuthController@getLogin'); Route::post('login', 'AuthController@postLogin'); 

Поэтому вместо того, чтобы писать, вам нужно только написать один, поскольку оба они используют «тот же» метод, но также URL остается как site.com/login вместо перенаправления на site.com/auth/login ?

Мне любопытно, поскольку я помню, что у CI есть что-то вроде этого, где URL-адрес остается тем же, и контроллер никогда не отображается:

 $route['(method1|method2)'] = 'controller/$1'; 

Related of "Как направить GET и POST для одного шаблона в Laravel?"

Вы можете попробовать следующее:

 Route::controller('login','AuthController'); 

Затем в вашем AuthController class реализуйте следующие методы:

 public function getIndex(); public function postIndex(); 

Он должен работать 😉

Документы говорят …

 Route::match(array('GET', 'POST'), '/', function() { return 'Hello World'; }); 

источник: http://laravel.com/docs/routing

Вы можете комбинировать все HTTP-глаголы для маршрута, используя:

 Route::any('login', 'AuthController@login'); 

Это будет соответствовать как GET и POST HTTP-глаголам. И он также будет соответствовать PUT , PATCH & DELETE .

См. Приведенный ниже код.

 Route::match(array('GET','POST'),'login', 'AuthController@login'); 
 Route::any('login', 'AuthController@login'); 

и в контроллере:

 if (Request::isMethod('post')) { // ... this is POST method } if (Request::isMethod('get')) { // ... this is GET method } ... 
 Route::match(array('GET', 'POST', 'PUT'), "/", array( 'uses' => 'Controller@index', 'as' => 'index' )); 

В laravel 5.1 это может быть достигнуто с помощью неявных контроллеров. посмотреть, что я нашел из документации laravel

 Route::controller('users', 'UserController'); 

Затем просто добавьте методы к контроллеру. Имена методов должны начинаться с HTTP-глагола, на который они отвечают, за которым следует версия примера кода URI:

 <?php namespace App\Http\Controllers; class UserController extends Controller { /** * Responds to requests to GET /users */ public function getIndex() { // } /** * Responds to requests to GET /users/show/1 */ public function getShow($id) { // } /** * Responds to requests to GET /users/admin-profile */ public function getAdminProfile() { // } /** * Responds to requests to POST /users/profile */ public function postProfile() { // } } 

Правильно, я отвечаю, используя мой мобильный телефон, и поэтому я не тестировал это (если я правильно помню, это не входит в документацию). Вот оно:

 Route::match('(GET|POST)', 'login', 'AuthController@login' ); 

Это должно делать свое дело. Если это не так, то Тейлор удалил его из ядра; что тогда означало бы, что никто не использовал его.