Подтвердить что ты не робот

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

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

Route::get('login', '[email protected]');
Route::post('login', '[email protected]');

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

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

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

Ответ 1

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

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Route::match(array('GET','POST'),'login', '[email protected]');

Ответ 4

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

Route::any('login', '[email protected]');

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

Ответ 5

Route::any('login', '[email protected]');

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

if (Request::isMethod('post'))
{
// ... this is POST method
}
if (Request::isMethod('get'))
{
// ... this is GET method
}
...

Ответ 6

Route::match(array('GET', 'POST', 'PUT'), "/", array(
    'uses' => '[email protected]',
    'as' => 'index'
));

Ответ 7

В 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()
    {
        //
    }
}

Ответ 8

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

Route::match('(GET|POST)', 'login',
    '[email protected]'
);

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

Ответ 9

Согласно последним документам, это должно быть

Route::match(['get', 'post'], '/', function () {
    //
});

https://laravel.com/docs/routing