区分Laravel控制器中的GET和POST方法

时间:2016-05-26 11:39:08

标签: php laravel routing controllers

我有2条路线如下,

Route::get('/','MainController@Date');
Route::post('/','MainController@Date');

Route::any('/','MainController@Date');

当调用get请求时,我将计算日期,并且调用hen post request,我将从表单输入中获取日期。

在我的控制器中调用post方法时

$date1 = $request->get ( 'date1' );
$date2 = $request->get ( 'date2' );

当调用get时

$date1 = will calculate using date function
$date2 = will calculate using date function

如果得到一组东西并发布另一组东西,如何区分两种方法的获取和发布

3 个答案:

答案 0 :(得分:4)

您只需使用以下代码

即可
public function someMethod(Request $request)
{
        $method = $request->method();

        // to check if its a post method
        if ($request->isMethod('post')) {
            //
        }

        // to check if its a get method
        if ($request->isMethod('get')) {
            //
        }
}

方法方法将返回请求的HTTP谓词。您还可以使用isMethod方法来验证HTTP谓词是否与给定字符串匹配:

答案 1 :(得分:1)

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class SmeController extends Controller
{
    /**
     * Do somthing
     * @param  Request  $request
     */
    public function update(Request $request)
    {
        if ($request->isMethod('post')) {
    //
        }
        if ($request->isMethod('get')) {
    //
        }
    }
}

你也可以使用$method = $request->method();

答案 2 :(得分:0)

$request->query();//return only GET param
$request->request->all()// POST param
$request->input();//all