2017-05-16 24 views
1

对于一个项目,我有多个数据库设置应该跨站点工作。我有一个“主”网站,其中包含所有(重要)表格,如用户,类别和组。然后,我也建立了“奴隶”网站,基本形成一个网站群。所有这些网站都驻留在同一个数据库中。Mysql视图 - 自动递增不工作(通过Eloquent ORM)

奴隶网站有从主人连接到表的视图,并通过雄辩得到结果完美的作品,我得到了我应该的结果。

现在的问题是,当我尝试插入一些东西到奴隶(视图)的自动增量似乎没有工作/占。

我想一个解决方案可能是运行一个SELECT COUNT ..查询并增加一个返回的Integer,但这不像是应该使用的解决方案。

一些信息,应该是有用的:

视图是由以下查询创建:

CREATE OR REPLACE VIEW {$this->tablename} AS SELECT * FROM {$this->source}.{$this->tablename} WITH CASCADED CHECK OPTION 

是我尝试执行的命令如下:

// Create a new id/entry in the Group table. 
$__model = new \App\Group; 
$__model->setConnection('ext_connection'); 
$__model->save(); 

// Create the translations here.. 

版本信息:

我运行MySQL的版本:的MySQL版本14.14 DISTRIB 5.7.17,对于Linux下(x86_64)

我使用Laravel版本:5.4.21

我使用的PHP版本:PHP 7.1.4-1 + deb.sury.org〜xenial + 1

我希望有人能够启发我如何正确插入视图。

回答

0

那么在对工匠修补程序进行修补之后,我开始意识到,Eloquent ORM不会将空字段作为NULL值插入(应遵循MySQL标准),而是将其完全清空。

以这种方式插入到视图中会引发它缺少列值的异常,这是要抛出的正确错误。

所以,解决这个问题的一个好方法就像在以下线程中描述的那样:View Here