【问题标题】:when i get the variable with Request is empty当我得到 Request 的变量为空时
【发布时间】:2019-05-16 18:35:29
【问题描述】:

这是我得到的错误:“SQLSTATE [23000]:完整性约束违规:1048 Le champ 'username' ne peut être vide (null) (SQL: update user set username = ?, pseudo = ?, email = ?, password = ? 其中id = 29)"

public function updateUser($id, Request $request)
{
    if ($id != NULL) {
        $username = $request->get('username');
        $pseudo = $request->get('pseudo');
        $email = $request->get('email');
        $password = $request->get('password');
        $retour = testToken();
        if($retour == TRUE) {
            $data = User::where('id', $id)->update(array('username'=>$username, 'pseudo'=>$pseudo, 'email'=>$email, 'password'=>$password));
            return response()->json([
                'message'=>'OK',
                'data'=>$data]
            ,200);
        } else {
            return response()->json([
                'message'=>'Forbidden',
            ]
            ,403);
        }
    } else {
        return response()->json([
        'message'=>'Not found',
        ]
        ,404);
    }       
}

dd($request->input()); 我得到一个空数组:

【问题讨论】:

  • 可能没有什么不同,但尝试切换变量注入的顺序:updateUser(Request $request, $id)。保存前确认值(dd($request->input());),并确保您的表单/ajax 请求/发送正确数据的任何内容。
  • 我尝试过,但没有任何改变
  • 继续其余的调试过程。 $usernamenull,所以在转换的某个地方,数据没有被正确发送或接收。
  • 你的内容类型是什么?

标签: mysql laravel request


【解决方案1】:

好的,答案是用这种方式获取参数:

$username = Input::get('username'); $pseudo = Input::get('pseudo'); $email = Input::get('email'); $password = Input::get('password');

【讨论】:

  • 你不应该这样做。检查您的邮递员请求中的内容类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2014-12-26
  • 1970-01-01
  • 2020-08-22
  • 2022-07-02
相关资源
最近更新 更多