如果我有类似下面的路线。
Route::post('/user/{id}', 'UserController@my_function');
如何设置控制器的功能是这样的,所以我可以使用URL参数和POST请求体数据?我希望它类似于下面的代码,但是这是正确的?
public function my_function($id, Request $request){}
你做的方式根据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
它确定,但我爱传递ID这样,当我返回一个视图
public function my_function(Request $request){
return view('myfile',['id'=>$id]);
}
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
}