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

时间:2014-01-04 07:29:44

标签: php laravel eloquent

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

$user = User::all();
return $user->column-one;

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

2 个答案:

答案 0 :(得分:16)

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

修改
请参阅下面的@Alexandre Butynski的评论,以获得比我使用的更好的解决方案。

答案 1 :(得分:2)

我没有尝试过这个,但是好奇如果使用camelCase它会起作用。这就是路线之类的东西。例如:$user->columnOne

但我建议重命名该列。这真的不能在PHP应用程序中很好地映射。

更新 - 试试这个:

$用户> { “列酮”}