为什么插入/创建在Laravel中不起作用?

时间:2019-03-09 22:17:17

标签: laravel laravel-5

SQL Dump是:

   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 :(得分:0)

查看模型后,我认为您需要设置$ fillable var。您可以将所有要插入/更新的汽车中的属性放在其中。

https://laravel.com/docs/5.8/eloquent参见“批量分配”部分。