Laravel 4 Eloquent ORM:虚拟表/视图 - 有可能吗?

Posted

技术标签:

【中文标题】Laravel 4 Eloquent ORM:虚拟表/视图 - 有可能吗?【英文标题】:Laravel 4 Eloquent ORM: virtual tables / views - is it possible? 【发布时间】:2013-01-17 07:57:47 【问题描述】:

我有一个表事件,我在其中记录不同类型的事件,例如登录、注册等。这是基于type 列。

我想为每种事件类型提供不同的模型(或任何其他合适的解决方案),例如 EventLogin。因此看起来我对每种事件类型都有不同的“表”,即使它们保存在同一个表中。

编辑:当然,我不想每次都想,即我想做EventLogin->where("user_id", "=", $user->id)而不必担心记得做->where("type", "=", "login")

有可能吗?

【问题讨论】:

【参考方案1】:

有可能吗?

是的。

只是有不同的模型文件。您需要设置表名,因为您的模型名称不会相同:

protected $table = 'your_table';

否则它将像普通表一样工作。

您可以将同样的原则应用于表单。与其为每个表设置一个模型,不如为每个表单设置一个模型 - 并将所有表单逻辑保存在一个位置。

【讨论】:

我想我的问题不够明显,我已经编辑了我的问题(参见编辑部分),因为这还不是解决方案。【参考方案2】:

认为这会让你感兴趣:

http://vimeo.com/53183075(morphMany() / morphTo() 在 7'00 附近使用)

否则,@TheShiftExchange 是对的,我支持他。

【讨论】:

很遗憾您没有粘贴太多代码:),但就是这样,多态关系!我会用那个!

以上是关于Laravel 4 Eloquent ORM:虚拟表/视图 - 有可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel系列4.3模型Eloquent ORM的使用

Laravel系列4.4模型Eloquent ORM的使用

Laravel 1 个外键,2 个表 Eloquent ORM

在 Laravel 5.4 (Eloquent ORM) 中自动删除 NESTED 相关行

laravel5.8之模型操作数据库 — Eloquent ORM(实践)

Laravel Eloquent ORM 的本地作用域