解決 Laravel 無法偵測到「使用者名稱」輸入的問題
P粉060112396
P粉060112396 2023-08-15 14:50:48
0
2
488
<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粉060112396
P粉060112396

全部回覆(2)
P粉799885311

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

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

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

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

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

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

protected $fillable = ['name', 'username', ...];
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板