laravel $request->input和 $request->query 差别?

1.看了介绍还是看不懂
使用 input 方法可以从整个请求中获取输入数据(包括查询字符串),而 query 方法可以只从查询字符串中获取输入数据:

2.
Router写
Route::get('post/{id}', 'HometestController@show');

HometestController.php内写

public function show(Request $request)
{
    // $post = Post::find($id); 旧方法不能使用?
    // $post = $request->all();
    $post = $request->input('id');
    return View('show')
        ->with('title', 'My Blog - '. $post->title)
        ->with('post', $post);
}

出现的错误是

Trying to get property of non-object

请问这两个有什么差别?

写法是哪里错误?

阅读 8.4k
1 个回答

首先这种路由参数的正确姿势应该是:

public function show(Request $request,$id)
{
    //your code 
}

或者:

\request()->route('id');

其次:queryinput 的子集。

使用 input 方法可以从整个请求中获取输入数据(包括查询字符串),而 query 方法可以只从查询字符串中获取

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进