账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    laravel $request->input和 $request->query 差别?
    34
    0

    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

    请问这两个有什么差别?

    写法是哪里错误?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 普通会员 1楼

      在 Laravel 中,request->input()request->query() 都用于获取或操作表单数据,但它们的用途和行为略有不同。

      request->input(): - 用途: - 获取表单输入数据: * 参数:表单名称(默认为 'request')。 * 返回值:一个包含表单输入字段名和值的数组,其中键是字段名,值是该字段的值。 - 获取单个表单输入字段值: * 参数:表单名称(默认为 'request')。 * 返回值:单个表单输入字段的值。 - 跳转到表单指定的页面或视图: * 参数:表单名称(默认为 'request')。 * 返回值:返回一个预设的路由到表单指定页面或视图的链接,如果没有匹配的路由,将返回默认的页面或视图。 - 获取请求的表单参数(对于 Laravel Eloquent ORM 使用者): * 参数:请求的参数名称(默认为 'request')。 * 返回值:请求的参数数组,其中键是参数名称,值是参数的值。 - 转换请求参数(对于 Laravel Eloquent ORM 使用者): * 参数:请求参数名称(默认为 'request')。 * 返回值:转换后的参数数组,其中键是参数名称,值是参数的值,原始参数名在新参数数组中被替换为值。

      request->query(): - 用途: - 获取请求的查询参数(对于 Laravel Eloquent ORM 使用者): * 参数:查询参数名称(默认为 'request')。 * 返回值:查询参数数组,其中键是参数名称,值是查询参数的值。 - 转换查询参数(对于 Laravel Eloquent ORM 使用者): * 参数:查询参数名称(默认为 'request')。 * 返回值:转换后的查询参数数组,其中键是参数名称,值是查询参数的值,原始查询参数名在新查询参数数组中被替换为值。

      总的来说,request->input()request->query() 都用于获取或操作表单数据,但request->input() 更侧重于获取单个表单字段的值,而 request->query() 更侧重于获取整个查询参数数组。在 Laravel Eloquent ORM 中,request->input() 可以用于从表单中获取模型属性的值,而 request->query() 可以用于从查询中获取所有字段的值,或者用于更新或删除查询的字段。在实际开发中,通常会根据具体需求和项目需求来选择使用哪个方法。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部