带有 POST 请求的 Laravel 路由 URL 参数
Posted
技术标签:
【中文标题】带有 POST 请求的 Laravel 路由 URL 参数【英文标题】:Laravel Routing URL Parameters with POST Request 【发布时间】:2019-06-27 01:03:55 【问题描述】:如果我有如下路线。
Route::post('/user/id', 'UserController@my_function');
如何将控制器功能设置为这样,以便可以使用 URL 参数和 POST 请求正文数据?我希望它类似于下面的代码,但这是正确的吗?
public function my_function($id, Request $request)
【问题讨论】:
【参考方案1】:没关系,但我喜欢在返回视图时像这样传递 id
public function my_function(Request $request)
return view('myfile',['id'=>$id]);
【讨论】:
这是另一种方法,谢谢,我可能在某些场合使用这种方法【参考方案2】:根据 laravel 文档,您的做法是正确的。
如果您的控制器方法也需要路由参数的输入,请在其他依赖项之后列出您的路由参数。例如,如果您的路线是这样定义的:
Route::put('user/id', 'UserController@update');
您仍然可以键入提示 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
欲了解更多信息:docs
【讨论】:
【参考方案3】:当你像这样公开你的 url 参数时,你必须使用 get 请求参数来传递它,例如 localhost:3000/user/1
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
【讨论】:
感谢您的回复,但您的第二个示例不是我想做的,但我感谢您的回复以上是关于带有 POST 请求的 Laravel 路由 URL 参数的主要内容,如果未能解决你的问题,请参考以下文章