Laravel, 相关模型重命名

Laravel, related model reuturened names

我有一个模型有一个相关模型

class A extends Model{

public function niceName()
    {
        return this->hasOne('App\NiceName2' ...);
    }

在控制器中,当我使用子模型检索数据时,结果类似于

a[nice_name_2](使用 table 名称),我希望它是 [NiceName2]。

有没有办法为返回的结果取一个别名?在 cakePHP 中,我知道有 propertyName 可以在关系上设置它。 Laravel 有类似的功能吗?

谢谢

Laravel 对方法名称使用 camelCase 约定,对属性使用 snake_case。我不确定是否有解决此问题的简单方法。

当 Laravel 序列化数据时,按照惯例它会将关系转换为 snake_case。因此,当您执行 toArray() 或模型被序列化时(在 JSON 响应中或其他情况下),NiceName2 将变为 nice_name2

这是如何工作的:

当您访问 $model->nice_name2 时,它会将 属性 名称转换回 niceName2 以检查具有该名称的关系方法。序列化时,它将关系 niceName2 转换为属性名称 nice_name2.