如何在Laravel模型中为带有大写字母的字段设置或获取属性?

时间:2019-03-13 10:12:31

标签: php laravel

如果我的数据库中有如下字段:date_install,那么我可以设置一个名为的属性函数:

字段名称:date_install

public function setDateInstallAttribute($date)
{
        //code
}

但是我需要为以大写字母开头的字段设置属性:

字段名称:DateInstall

函数的名称是什么? setDateInstallAttribute无法正常工作。

2 个答案:

答案 0 :(得分:2)

尽管未明确规定,但惯例是在命名数据库字段时使用蛇格(snake_case)。在Laravel中,这是至关重要的,因为该框架在很大程度上依赖于snake_case和studlyCase,尤其是在处理模型(表名,外键,访问器和变异器等)时。在这种情况下,更改程序必须遵循模式setFooAttribute,其中Foo是您要访问的列的“ studly”大小写名称(snake_case)。

答案 1 :(得分:1)

Laravel通过大写第一个单词来寻找类似这样的变异子。如果提供了已经大写的属性,它应该可以正常工作。

因此,如果您的字段名为DateInstall,则setDateInstallAttribute应该是有效的方法名称。