Laravel 使用控制器参数与请求将数据传递给控制器
Laravel passing data to controller using controller parameter vs request
我不熟悉 Laravel 和网络编程。我在教程中看到讲师,他通过使用 控制器参数
将 id
传递给控制器
Route::get('/post/{id}', ['as'=>'home.post', 'uses'=>'AdminPostsController@post']);
,与从控制器通过 $request
参数传递 id
相比有什么区别?
你能告诉我什么时候使用控制器参数和请求吗?
假设你是Web开发的新手,尤其是Laravel,我建议你阅读Laraveldocumentation。 posts/{id}
检索对应于该 ID 的 post 模型值。
Route::get('/post/1', 'AdminPostsController@post']); -> returns post that has an ID 1.
当向你发送这样的请求时posts/1
它会注入你的模型和returns对应的id值
或者你可以手动通过对应id的controller处理
public function posts(Request $request)
{
returns Posts::find($request->id);
}
解释它的一种方法是参考您所指的 HTTP 动词 GET。
对于 return a post 的 GET 请求,其中 id 为 1,您将有两个选择:
/post/{id}
使用此方法(restful 约定)您需要将变量作为参数传递给控制器操作以访问它。
public function view($id)
{
$post = Post::find($id);
...
}
/post?id=1
使用此方法,您将 id 作为查询字符串参数传递到 url 中。然后在控制器中访问请求中的值。
public function view(Request $request)
{
$post = Post::find($request->input('id'));
...
}
现在假设您要创建一个新的 Post
,它通常是对 /post
端点的 HTTP 动词 POST 请求,您可以在其中使用Request
.
public function create(Request $request)
{
$post = Post::create($request->only('description'));
}
现在假设您要更新当前 Post
,这通常是对 /post/{id}
端点的 HTTP 动词 PUT 请求,您将在其中通过参数获取模型,然后更新数据使用请求。
public funciton update(Request $request, $id)
{
$post = Post::find($id);
$post->update($request->only('description'));
}
因此有时您也会将控制器参数与请求结合使用。但通常控制器参数用于您需要访问的路由内的单个项目。
我不熟悉 Laravel 和网络编程。我在教程中看到讲师,他通过使用 控制器参数
将 id
传递给控制器
Route::get('/post/{id}', ['as'=>'home.post', 'uses'=>'AdminPostsController@post']);
,与从控制器通过 $request
参数传递 id
相比有什么区别?
你能告诉我什么时候使用控制器参数和请求吗?
假设你是Web开发的新手,尤其是Laravel,我建议你阅读Laraveldocumentation。 posts/{id}
检索对应于该 ID 的 post 模型值。
Route::get('/post/1', 'AdminPostsController@post']); -> returns post that has an ID 1.
当向你发送这样的请求时posts/1
它会注入你的模型和returns对应的id值
或者你可以手动通过对应id的controller处理
public function posts(Request $request)
{
returns Posts::find($request->id);
}
解释它的一种方法是参考您所指的 HTTP 动词 GET。
对于 return a post 的 GET 请求,其中 id 为 1,您将有两个选择:
/post/{id}
使用此方法(restful 约定)您需要将变量作为参数传递给控制器操作以访问它。
public function view($id)
{
$post = Post::find($id);
...
}
/post?id=1
使用此方法,您将 id 作为查询字符串参数传递到 url 中。然后在控制器中访问请求中的值。
public function view(Request $request)
{
$post = Post::find($request->input('id'));
...
}
现在假设您要创建一个新的 Post
,它通常是对 /post
端点的 HTTP 动词 POST 请求,您可以在其中使用Request
.
public function create(Request $request)
{
$post = Post::create($request->only('description'));
}
现在假设您要更新当前 Post
,这通常是对 /post/{id}
端点的 HTTP 动词 PUT 请求,您将在其中通过参数获取模型,然后更新数据使用请求。
public funciton update(Request $request, $id)
{
$post = Post::find($id);
$post->update($request->only('description'));
}
因此有时您也会将控制器参数与请求结合使用。但通常控制器参数用于您需要访问的路由内的单个项目。