Laravel,相关模型重新命名

时间:2018-11-15 18:01:02

标签: laravel model alias relation

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

class A extends Model{

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

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

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

是否可以为返回的结果设置别名?在cakePHP中,我知道有propertyName可以在关系上进行设置。 Laravel有类似的功能吗?

谢谢

1 个答案:

答案 0 :(得分:1)

Laravel使用camelCase的约定表示方法名称,使用snake_case表示属性。我不确定这是否有简单的方法。

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

这是如何工作的:

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