Laravel:Eloquent如果列名包含破折号,如何获取模型的属性?

cam*_*seD 7 php laravel eloquent

我的根路径中有以下内容:

$user = User::all();
return $user->column-one;
Run Code Online (Sandbox Code Playgroud)

返回异常使用未定义的常量 -即使我有一个column-one从我的users表调用的列,也假定为'one'.那么我如何column-one从我的模型中获取?

cam*_*seD 16

在挖掘出雄辩模型的源代码之后,我找到了魔术方法,__get并了解到它只是一个公共函数的包装器,getAttribute它接受一个字符串,因此我现在可以通过它来检索列$user->getAttribute('column-one');.

编辑:
请参阅下面的@Alexandre Butynski的评论,以获得比我使用的解决方案更好的解决方案.

  • 您应该在模型中使用getter,如`function getColumnOneAttribute()`,然后您就可以访问您的属性:`$ use-> column_one`.阅读文档:http://laravel.com/docs/eloquent#accessors-and-mutators. (6认同)