繁体   English   中英

我可以将口才模型用作全功能课程吗?

[英]Can I use an Eloquent model as a fully featured class?

我只是在学习Laravel 4,我不确定Eloquent模型是如何工作的。 对我来说很明显,它们是与数据库交互的好方法,但是我可以在扩展Eloquent的类上定义构造函数和函数,以将其用于数据库交互以外的用途吗?

是! 扩展Eloquent的类不会使它成为仅用于Eloquent的类。 您已经了解了类扩展的概念。 有了类扩展,可以简单地从另一个现有类向ANY类添加功能。 在这种情况下,雄辩。

您可以采用已有的任何模型,明天决定要与Eloquent一起使用它,并简单地对其进行扩展。 您的原始班级仍然是您的原始班级,并且工作原理相同。 如果父类具有相同的名称,则原始类中的任何方法或属性都将覆盖其父(雄辩)。

实际上,在扩展Eloquent的类中创建其他方法是创建可执行各种有趣功能的健壮模型的真实方法。 例如,我在用户模型中创建方法,以计算到生日前多少天。 我没有像把生日列放入控制器然后使用PHP进行计算,而是使用了User :: daysUntilBirthday();这样的方法。

如果您使用构造函数并扩展Eloquent,请确保同时仍然触发Eloquent的构造函数。

class MyModel extends Eloquent {

   public function __construct($attributes = array(), $exists = false)
   {
      parent::__construct($attributes, $exists); // This will fire off Eloquent's constructor.
      // Your construct code.
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM