Ошибка Laravel: слишком мало аргументов для функции Illuminate \ Database \ Eloquent \ Model :: setAttribute () - PullRequest
0 голосов
/ 27 декабря 2018

При попытке вставить в таблицу появляется следующая ошибка users_basics

Illuminate \ Database \ Eloquent \ Model :: setAttribute (), 1 передано в C: \ xampp \ htdocs\ msadi \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Concerns \ HasAttributes.php в строке 592 и ожидается ровно 2

Вот мой код контроллера:

public function create()
{
   $userId = '10';

   $userBasics = new UserBasics;
   $userBasics->user_id = $userId;
   $userBasics->save();

   return redirect('users');
}

Вот моя модель:

class UserBasics extends Model
{
    protected $table = 'users_basics';
    protected $primaryKey = null;

    protected $fillable = ['user_id'];

    const UPDATED_AT = null;
    const CREATED_AT = null;
}

Вот моя миграция user_basics:

 public function up()
    {
        Schema::create('users_basics', function (Blueprint $table) {
            $table->integer('user_id');
            $table->bigInteger('adhaar_no')->nullable();
            $table->string('mobile_no')->nullable();
            $table->string('college_roll_no')->nullable();
            $table->date('dob')->nullable();

            $table->index('user_id');
        });
    }

Я попытался добавить UPDATED_AT, CREATED_AT и PrimaryKey в таблицуно никто не работал.user_id вставляется в таблицу users_basics, но ошибка продолжает отображаться.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы должны изменить свою модель:

class UserBasics extends Model 
{
    protected $table = 'users_basics';
    protected $primaryKey = null;
    public $incrementing = false;
    public $timestamps = false;

    protected $fillable = ['user_id'];
}
0 голосов
/ 27 декабря 2018

потому что у вас нет поля для метки времени.пожалуйста, добавьте вот так.

public function up()
    {
        Schema::create('sadi_users_basics', function (Blueprint $table) {
            $table->integer('user_id');
            $table->bigInteger('adhaar_no')->nullable();
            $table->string('mobile_no')->nullable();
            $table->string('college_roll_no')->nullable();
            $table->date('dob')->nullable();
            $table->timestamp(); <---- just insert this.
            $table->index('user_id');
        });
    }

также, если вы хотите использовать softdelete, то добавьте $table->softDeletes();

, это сделает поле Deleted_at в таблице.

приятным кодированием~!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...