在Eloquent ORM中向模型添加字段


Adding fields to a model in Eloquent ORM

我在一个项目中使用Eloquent,基本上我有一个Author模型,它有姓名,电子邮件等。

我有$author->created_at,$author->name,

我想要的是对象中总是存在的更多字段,例如:$author->created_at_formatted,,它基本上是date(format, created_at)

关于如何在课堂上做到这一点,有什么想法或提示吗?谢谢。

模型本身不应该负责为视图之类的东西制作"漂亮"的数据。许多人会选择在控制器甚至视图中这样做。我建议您研究一下"演示器",以及如何使用它们来转换和操作视图的数据。

在Laravel 4中有现成的演示器包,你可以马上开始使用(我建议你这样做)。

我不知道是否有一种方法来创建您自己的自动填充列,但如果"created_at_格式化"列是您所需要的,您可以添加以下内容到您的模型中,以更改created_at和updated_at列的格式:

public function freshTimestamp()
{
    // Your custom timestamp format
    return date("Y-m-d H:i:s");
}

你需要了解雄辩是如何工作的,以及它的主要目的是什么。

它只是一种通过对象轻松地与数据库表交互的方法(它是一个对象-关系映射器,即它将关系数据库表映射到对象)

如果您希望它有另一个字段,则必须将该字段添加到数据库表中。

但是,如果其他字段是另一个表的一部分,则可以使用join()查询方法。将添加两个表中的字段。如果由于某种原因无法修改作者表,则可以创建另一个包含所需字段的表,然后执行连接。

如果你需要更多的帮助,请告诉我,我会在这里添加代码。