繁体   English   中英

Laravel 当数据库插入太少时 arguments 错误

[英]Laravel when db insert getting too few arguments error

当尝试将用户插入数据库时,我得到

ArgumentCountError Too few arguments to function Illuminate\Database\Eloquent\Model::setAttribute(), 1 passed in C:\Repos\Laravel\voleran\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\819HasAttributes2.在第 713 行,正好是 2 个预期

我应该怎么办?

<?php

namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;

class User extends Model
{
use HasFactory, Notifiable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $table = "users";
protected $guarded = [];
const UPDATED_AT = '';
const DELETED_AT = '';
/**
 * The attributes that should be hidden for arrays.
 *
 * @var array
 */
 }


public function registerUser() {
    $user = User::create([
        'username' => request('register_username'),
        'email' => request('register_email'),
        'password' => Hash::make(request('register_password')),
        'token' => Str::random(60),
        'user_code' => Str::random(10),
        'user_news' => request('register_newsletter')
    ]);

    Auth::login($user);

    return redirect()->route('anasayfa');
}

    <form class="form" action="uyelik/kayit" method="POST">
                @csrf
                <!-- FORM ROW -->
                <div class="form-row">
                    <!-- FORM ITEM -->
                    <div class="form-item">
                    <!-- FORM INPUT -->
                    <div class="form-input">
                        <label for="register-email">E-Posta</label>
                        <input type="text" id="register-email" name="register_email">
                    </div>
                    <!-- /FORM INPUT -->
                    </div>
                    <!-- /FORM ITEM -->
                </div>
                <!-- /FORM ROW -->

                <!-- FORM ROW -->
                <div class="form-row">
                    <!-- FORM ITEM -->
                    <div class="form-item">
                    <!-- FORM INPUT -->
                    <div class="form-input">
                        <label for="register-username">Kullanıcı Adı</label>
                        <input type="text" id="register-username" name="register_username" autocomplete="off">
                        <input type="hidden" class="register_username_check" name="register_username_check" value="0">
                    </div>
                    <!-- /FORM INPUT -->
                    </div>
                    <!-- /FORM ITEM -->
                </div>
                <!-- /FORM ROW -->

                <!-- FORM ROW -->
                <div class="form-row">
                    <!-- FORM ITEM -->
                    <div class="form-item">
                    <!-- FORM INPUT -->
                    <div class="form-input">
                        <label for="register-password">Şifre</label>
                        <input type="password" id="register-password" name="register_password">
                    </div>
                    <!-- /FORM INPUT -->
                    </div>
                    <!-- /FORM ITEM -->
                </div>
                <!-- /FORM ROW -->

                <!-- FORM ROW -->
                <div class="form-row">
                    <!-- FORM ITEM -->
                    <div class="form-item">
                    <!-- FORM INPUT -->
                    <div class="form-input">
                        <label for="register-password-repeat">Şifre Tekrar</label>
                        <input type="password" id="register-password-repeat" name="register_password_repeat">
                    </div>
                    <!-- /FORM INPUT -->
                    </div>
                    <!-- /FORM ITEM -->
                </div>
                <!-- /FORM ROW -->

                <!-- FORM ROW -->
                <div class="form-row">
                    <!-- FORM ITEM -->
                    <div class="form-item">
                    <!-- CHECKBOX WRAP -->
                    <div class="checkbox-wrap">
                        <input type="checkbox" id="register-newsletter" name="register_newsletter" checked>
                        <!-- CHECKBOX BOX -->
                        <div class="checkbox-box">
                        <!-- ICON CROSS -->
                        <svg class="icon-cross">
                            <use xlink:href="#svg-cross"></use>
                        </svg>
                        <!-- /ICON CROSS -->
                        </div>
                        <!-- /CHECKBOX BOX -->
                        <label for="register-newsletter">Haberleri ve güncelleştirmeleri e-posta olarak gönder.</label>
                    </div>
                    <!-- /CHECKBOX WRAP -->
                    </div>
                    <!-- /FORM ITEM -->
                </div>
                <!-- /FORM ROW -->

                <!-- FORM ROW -->
                <div class="form-row">
                    <!-- FORM ITEM -->
                    <div class="form-item">
                    <!-- BUTTON -->
                    <button type="submit" name="btnKayitOl" class="button medium primary btnRegister" disabled>Kayıt Ol!</button>
                    <!-- /BUTTON -->
                    </div>
                    <!-- /FORM ITEM -->
                </div>
                <!-- /FORM ROW -->
                </form>

你不应该使用

const UPDATED_AT = '';
const DELETED_AT = '';

如果您不希望 Eloquent 自动管理这些列,请将 model 上的 $timestamps 属性设置为 false。 在您的用户 model 中添加以下代码

public $timestamps = false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM