Does anyone know of any way in Laravel 4 which combines these 2 lines into one?
Route::get(\'login\', \'AuthControl
Route::any('login', 'AuthController@login');
and in controller:
if (Request::isMethod('post'))
{
// ... this is POST method
}
if (Request::isMethod('get'))
{
// ... this is GET method
}
...
You can combine all HTTP verbs for a route using:
Route::any('login', 'AuthController@login');
This will match both GET
and POST
HTTP verbs. And it will also match for PUT
, PATCH
& DELETE
.
You could try the following:
Route::controller('login','AuthController');
Then in your AuthController class
implement these methods:
public function getIndex();
public function postIndex();
It should work ;)
In Routes
Route::match(array('GET','POST'),'/login', 'AuthController@getLogin');
In Controller
public function login(Request $request){
$input = $request->all();
if($input){
//Do with your post parameters
}
return view('login');
}
In laravel 5.1 this can be achieved by Implicit Controllers. see what I found from the laravel documentation
Route::controller('users', 'UserController');
Next, just add methods to your controller. The method names should begin with the HTTP verb they respond to followed by the title case version of the 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()
{
//
}
}
See the below code.
Route::match(array('GET','POST'),'login', 'AuthController@login');