如何为动态生成的表创建模型(动态)?

时间:2015-12-07 04:00:09

标签: laravel eloquent

我今天偶然发现了这个问题。我的项目有几个表,我已经创建了他们的专用模型。但是,我的项目允许用户创建动态表。

如何在这些动态生成的表之间创建关系或模型?

1 个答案:

答案 0 :(得分:1)

我不建议在动态生成的表上创建Eloquent模型,因为Eloquent模型可以帮助开发人员创建已经创建的数据库表(通常为现有数据库表定义关系,范围,属性转换等功能)。

我的建议是什么?请改用Query Builder。除了没有模型,你将拥有与Eloquent Models几乎相同的功能。

而不是像:

DynTable::where('foo', 123)
        ->where('bar', 456)
        ->first();

您将拥有以下内容:

DB::table('dyn_table')
  ->where('foo', 123)
  ->where('bar', 456)
  ->first();
基本上,同样的。但是,您可以为查询生成器指定任何表名,但不能将表名更改为Eloquent模型(在正在运行的脚本中)。