带有 POST 请求的 Laravel 路由 URL 参数

Zac*_*Zac 0 php post routing routes laravel

如果我有如下路线。

Route::post('/user/{id}', 'UserController@my_function');
Run Code Online (Sandbox Code Playgroud)

如何将控制器功能设置为这样,以便我可以使用 URL 参数和 POST 请求正文数据?我希望它类似于下面的代码,但这是正确的吗?

public function my_function($id, Request $request){}
Run Code Online (Sandbox Code Playgroud)

Pia*_*zzi 5

根据laravel docs,您的做法是正确的。

如果您的控制器方法也需要来自路由参数的输入,请在其他依赖项之后列出您的路由参数。例如,如果您的路线定义如下:

 Route::put('user/{id}', 'UserController@update');
Run Code Online (Sandbox Code Playgroud)

你仍然可以通过定义你的控制器方法来输入 Illuminate\Http\Request 并访问你的 id 参数,如下所示:

这是使用您发送的数据的示例:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Update the given user.
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
       $request->all() // here you're acessing all the data you send it
       $user = User::find($id) // here you're getting the correspondent user from the id you send it

    }
}
Run Code Online (Sandbox Code Playgroud)

更多信息:文档