在Laravel中如何对数据库表列使用snake case,为模型属性使用camel case

Mic*_*ael 5 laravel eloquent laravel-4

我是laravel 4的新手,我正在尝试按照Apigee定义的最佳实践创建一个rest API.

apigee定义的最佳实践之一是对json属性键使用camel case,这种方式在Javascript中使用API​​时,相应的对象将遵循属性代码约定(camel case).

我希望能够在蛇案例之后定义数据表列,但是当通过我的api检索有说服力的对象时,相应的JSON必须遵循骆驼案例.

我读到了一个静态变量$ snakeAttributes,它可以在模型类中设置,它的文档说"指示属性是否是蛇形数组".我试图覆盖这个变量并将其设置为false(MyResource类)但是在执行下面的代码时,json仍然以蛇形式出现:

码:

   $resource = MyResource::find($id);
   return Response::json($resource);
Run Code Online (Sandbox Code Playgroud)

JSON:

{ 
first_name: 'Michael', 
created_at: "2013-10-24 15:30:01",
updated_at: "2013-10-24 15:30:01"
}
Run Code Online (Sandbox Code Playgroud)

有人知道如何解决这个问题吗?

Ant*_*iro 13

创建BaseModel和一个新方法来帮助您:

class BaseModel extends \Eloquent {

    public function toArrayCamel()
    {
        $array = $this->toArray();

        foreach($array as $key => $value)
        {
            $return[camel_case($key)] = $value;
        }

        return $return;
    }

}
Run Code Online (Sandbox Code Playgroud)

你的型号:

class MyResource extends BaseModel {
}
Run Code Online (Sandbox Code Playgroud)

然后使用它:

$resource = MyResource::find($id);
return Response::json( $resource->toArrayCamel() );
Run Code Online (Sandbox Code Playgroud)