Почему вставка / создание не работает в Laravel? - PullRequest
0 голосов
/ 10 марта 2019

Дамп SQL:

   CREATE TABLE `visitors` (
  `idVisitor` int(11) NOT NULL,
  `name` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


ALTER TABLE `visitors`
  ADD PRIMARY KEY (`idVisitor`);


ALTER TABLE `visitors`
  MODIFY `idVisitor` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
COMMIT;

Полная модель:

class Visitor extends Model
{
    public $timestamps = false;

    public $table = 'visitors';

    protected $fillable = ['name'];

    protected $primaryKey = 'idVisitor';


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

        static::addGlobalScope(new StatusScope);
    }

    public function checker()
    {
        return $this->hasOne('App\User', 'id', 'user_checked');
    }

    public function event()
    {
        return $this->belongsTo('App\Event', 'idEvent', 'idEvent');

    }
}

Вставка:

$c = Visitor::create(["name" => "4"]);

 echo json_encode($c);die();

Возвращает: {"name":"4","idVisitor":8}, но в таблице нет вставленной строки.Я не использую транзакции.

1 Ответ

0 голосов
/ 10 марта 2019

Посмотрев на вашу модель, я думаю, вам нужно установить переменную $ fillable. вы бы поместили все атрибуты в ту машину, которую вы будете вставлять / обновлять.

https://laravel.com/docs/5.8/eloquent См. Раздел присвоения массы.

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