我有一个具有相关模型的模型
class A extends Model{
public function niceName()
{
return this->hasOne('App\NiceName2' ...);
}
在控制器中,当我使用子模型检索数据时,结果类似于
a [nice_name_2](使用表名),我希望它是a [NiceName2]。
是否可以为返回的结果设置别名?在cakePHP中,我知道有propertyName可以在关系上进行设置。 Laravel有类似的功能吗?
谢谢
答案 0 :(得分:1)
Laravel使用camelCase的约定表示方法名称,使用snake_case表示属性。我不确定这是否有简单的方法。
Laravel序列化数据时,按照惯例,它将关系转换为snake_case。因此,当您执行NiceName2
或对模型进行序列化(在JSON响应中或其他方式)时,nice_name2
将变为toArray()
。
这是如何工作的:
当您访问$model->nice_name2
时,它将属性名称转换回niceName2
,以检查具有该名称的关系方法。进行序列化时,它将关系niceName2
转换为属性名称nice_name2
。