Расширение моделей и таблиц высева с помощью Eloquent в Laravel

Я пытаюсь выяснить, какое отношение имеет заполнение к тому, расширяю ли я модель до базовой модели, которая расширяет eloquent или нет, потому что, когда я превращаю пользовательскую модель в расширение eloquent и запускаю начальный файл, он работает, но я оставляю его Таким образом, он помещает пустые значения для всех заполняемых полей.

Любые идеи относительно того, почему это происходит и как это возможно исправить?

Модель пользователя

<?php

use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;

class User extends BaseModel implements UserInterface, RemindableInterface {

use UserTrait, RemindableTrait, SoftDeletingTrait;

protected $fillable = ['first_name', 'last_name', 'username', 'avatar', 'role_id', 'status_id', 'email_address', 'password'];

protected static $rules = [
'first_name' => 'required',
'last_name' => 'required',
'username' => 'required|unique:users',
'email_address' => 'required|email|unique:users',
'avatar' => 'required|unique:users',
'password' => 'required|confirmed',
'role_id' => 'required',
'status_id' => 'required'
];

public function __construct()
{
parent::__construct();
}

/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';

/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password', 'remember_token');

/**
* Get the user's full name by concatenating the first and last names
*
* @return string
*/
public function getFullName()
{
return $this->first_name . ' ' . $this->last_name;
}
}

Базовая модель

<?php

class BaseModel extends Eloquent {

protected $errors;

public function __construct()
{
parent::__construct();
}

public static function boot()
{
parent::boot();

static::saving(function($model)
{
return $model->validate();
});
}

public function validate()
{
$validation = Validator::make($this->getAttributes(), static::$rules);

if ($validation->fails())
{
$this->errors = $validation->messages();

return false;
}

return true;
}

public function getErrors()
{
return $this->errors;
}
}

UsersTableSeeder

<?php

// Composer: "fzaninotto/faker": "v1.3.0"use Faker\Factory as Faker;

class UsersTableSeeder extends Seeder {

public function run()
{
User::create([
'first_name' => 'First',
'last_name' => 'Last',
'username' => 'myusername',
'email_address' => '[email protected]',
'avatar' => 'Myava',
'password' => Hash::make('changeme'),
'role_id' => 4,
'status_id' => 1
]);

//create instanances for each fake user
$faker = Faker::create();

$roleIds = UserRole::lists('id');
$statusIds = UserStatus::lists('id');

foreach(range(1, 20) as $index)
{
User::create([
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'username' => $faker->username,
'email_address' => $faker->freeEmail,
'avatar' => $faker->lexify('????????'),
'password' => Hash::make($faker->word),
'role_id' => $faker->randomElement($roleIds),
'status_id' => $faker->randomElement($statusIds)
]);
}
}
}

0

Решение

Ваши конструкторы несовместимы с Eloquent.

Избавьтесь от них, так как они ничего не делают или делают совместимыми:

public function __construct(array $attributes = [])
{
parent::__construct($attributes);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]