与POST请求Laravel路由URL参数

问题描述 投票:0回答:3

如果我有类似下面的路线。

Route::post('/user/{id}', 'UserController@my_function');

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

public function my_function($id, Request $request){}
php laravel post routing routes
3个回答
2
投票

你做的方式根据laravel文档是正确的。

如果你的控制器方法也期待从路径参数输入,列出你的其他依赖后,你的路线争论。例如,如果你的路由被定义,像这样:

 Route::put('user/{id}', 'UserController@update');

您可能仍然的类型提示的照射\ HTTP \请求,并通过定义如下您的控制器方法来访问你的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

    }
}

欲了解更多信息:docs


1
投票

它确定,但我爱传递ID这样,当我返回一个视图

public function my_function(Request $request){
return view('myfile',['id'=>$id]);
}

1
投票

3000 /用户/ 1:当你永远暴露你的网址参数一样,你必须使用一个GET请求参数通过e.g localhost来传递

Route::get('/user/{id}', 'UserController@my_function');

public function my_function($id){ //do something }

但是,如果你通过保持即通过邮局下藏着的ID。

Route::post('/user', 'UserController@my_function');

public function my_function(Request $request){ // do something $request->id }

也许这是你想要做什么

Route::put('user/{id}', 'UserController@my_function');

public function my_function($id){ //do something }

© www.soinside.com 2019 - 2024. All rights reserved.