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

Differentiate between GET and POST method in Laravel Controller

我有 2 条如下所示的路线,

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

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

调用 get 请求时,我将计算日期,然后调用 post 请求,我将从表单输入中获取日期。

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

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

调用get时

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

如何区分 get 和 post 两种方法,如果 get 我应该一套东西,对于 post 另一套东西

    <?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();

您可以使用以下代码简单地执行此操作

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

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

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