亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel,如何更新用戶個人資料并檢查電話號碼是否重復

Laravel,如何更新用戶個人資料并檢查電話號碼是否重復

PHP
守候你守候我 2022-05-27 15:04:03
我正在使用 ajax 在同一頁面中更新用戶配置文件,我對此沒有任何問題,因為用戶已登錄,然后控制器檢查來自 Auth 的用戶 ID,如下面的代碼所示,但在注冊頁面中檢查電話號碼是否重復,但在更新時我不知道該怎么做,如果當前用戶沒有更新他的電話號碼,也忽略更新!控制器: public function update(Request $request)  {  $user_id=Auth::user()->id;  User::where('id', $user_id)->update([  'phone' => $request->phone,  'fname' => $request->fname,  'lname' => $request->lname  ]);   return Response::json(array(   ));  }   }
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

您實際上可以在訪問控制器之前驗證數據。它更安全,您將擁有更清晰的代碼。首先,創建您的自定義請求驗證:


php artisan make:request UserRequest

這將創建一個空UserRequest類,您可以在其中驗證數據:


class UserRequest extends FormRequest

{

    public function authorize()

    {

        return true;

    }

    

    //Validate your data here

    public function rules()

    {

        return [

            'phone' => 'required|unique:users',

            'fname' => 'required',

            'lname' => 'required',

        ];

    }

    

    //Add custom message if validation fails

    public function messages()

    {

        return [

            'phone.required' => 'Phone is required.',

            'phone.unique' => 'Phone number should be unique.',

            'fname.unique' => 'First name is required.',

            'lname.required' => 'Last name is required.',

        ];

    }

}

您現在要做的就是在控制器中導入此自定義驗證:


public function update(UserRequest $request)

  {

    $user_id = Auth::user()->id;


    User::where('id', $user_id)->update([

      'phone' => $request->phone,

      'fname' => $request->fname,

      'lname' => $request->lname

    ]);


    return;

  }


查看完整回答
反對 回復 2022-05-27
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

有一個問題。那就是 'phone' => 'unique:App\User,phone,' 。$用戶->電話, 線路。


您的代碼:

您需要在保存到數據庫之前驗證請求


public function update(Request $request)

  {

    $user = Auth::user();


    $request->validate([

      // unique:table,column,except,idColumn

      'phone' => 'unique:App\User,phone,' . **$user->phone**,

    ]);


    $user_id=Auth::user()->id;

    

    User::where('id', $user_id)->update([

      'phone' => $request->phone,

      'fname' => $request->fname,

      'lname' => $request->lname

    ]);

    

    return;

  }

I hope it helps you.

這會產生問題。你應該使用$this->phone。


公共功能更新(請求 $request){ $user = Auth::user();


$request->validate([

  // unique:table,column,except,idColumn

  'phone' => 'unique:App\User,phone,' . $this->phone,

]);


$user_id=Auth::user()->id;


User::where('id', $user_id)->update([

  'phone' => $request->phone,

  'fname' => $request->fname,

  'lname' => $request->lname

]);


return;

}


試試這個。


查看完整回答
反對 回復 2022-05-27
  • 2 回答
  • 0 關注
  • 206 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號