【发布时间】:2018-09-18 09:09:09
【问题描述】:
我试图在我的用户模型中为一个已经存在的字段定义一个访问器。此字段在我的数据库中称为 address_line_1。但是,由于字段名称包含一个数字,我不确定如何让 Laravel 识别“行”之后有一个下划线。
通常要定义下划线,你会使用驼峰式大小写,但在这种情况下你不能。我已经检查了 Laravel 文档,但是没有提到这个问题。以下是我目前的代码:
public function getAddressLine1Attribute($value){
return empty($value) ? '' : decrypt($value);
}
我也试过函数名getAddress_Line_1Attribute 和getAddressLine_1Attribute 但这不起作用。
我该如何解决这个问题?
【问题讨论】:
-
那么当您使用
$model->address_line_1时,它不是在解密它吗? -
@ThomasEdwards 如果 address_line_1 为空,则不会尝试对其进行解密。我遇到的问题是我无法让这个属性工作,因为我无法让这个属性识别
address_line_1。我可以通过创建一个名为address_line_one的属性并专门以这种方式访问address_line_1来解决这个问题,但我更喜欢只覆盖当前字段。 -
@ThomasEdwards 我在整个用户模型中都有类似的属性(例如,
zip_code工作正常,因为该字段的名称中不包含数字。 -
别担心,只是想确定您使用的是
address_line_1在视图中打印它,而不是getAddress_Line_1。你试过getAddressLine_1Attribute作为方法名吗? -
@ThomasEdwards 编辑:不,那没有用。出于测试目的,我添加了
return "test";以查看该字段是否甚至被覆盖,但事实并非如此。