首頁  >  問答  >  主體

解決 Laravel 無法偵測到「使用者名稱」輸入的問題

<p>我是laravel的新手,我的程式碼之前是可以工作的,但是我把"name"改成了"username",然後如果我點擊提交,它會說它沒有預設值。 </p> <pre class="brush:php;toolbar:false;">class UserSignup extends Controller { public function register(Request $request) { $validatedData = $request->validate([ 'username' => ['required', 'string','max:255', Rule::unique('users')], 'email' => ['required', 'email', 'max:255', Rule::unique('users')], 'password' => 'required|min:8' ]); $validatedData['password'] = bcrypt($validatedData['password']); $user = User::create($validatedData); return response()->json(['message' => 'User created successfully!', 'user' => $user]); } }</pre> <p>我嘗試將"name"改成"username"如下所示</p> <pre class="brush:php;toolbar:false;">$validatedData = $request->validate([ 'username' => ['required', 'string','max:255', Rule::unique('users')], 'email' => ['required', 'email', 'max:255', Rule::unique('users')], 'password' => 'required|min:8' ]);</pre> <p>點擊提交後會出現錯誤,說它沒有預設值。 </p> <p>我只想把'username'放入資料庫。 </p>
P粉060112396P粉060112396431 天前428

全部回覆(2)我來回復

  • P粉799885311

    P粉7998853112023-08-16 09:04:22

    我只是在app.php中加入了用戶名,然後它就起作用了

    protected $fillable = [
            'username',
            'name',
            'email',
            'password',
        ];

    回覆
    0
  • P粉473363527

    P粉4733635272023-08-16 00:24:13

    您可以在資料庫(和遷移)中將name值設為非空。如果您還想擁有nameusername屬性,有兩個選項:

    1. name屬性設定預設值(或將其設為可為空),並在資料庫中使用遷移新增username屬性。

    2. 在註冊表單和請求驗證中建立一個name字段,現在您可以將其新增至資料庫記錄。

    提示:在您的模型檔案(User.php)中,您必須將要填入的每個屬性新增至$fillable屬性:

    protected $fillable = ['name', 'username', ...];

    回覆
    0
  • 取消回覆