繁体   English   中英

在Laravel json响应中使用访问器和mutator

[英]Using accessors and mutators in Laravel json responses

所以我正在制作一个产生json响应的API而不是View::make('foo', compact('bar'))

带刀片模板

我的控制器只返回Users的Eloquent模型:

public function index()
{
    return User::all();
}
protected function getFooAttribute()
{
    return 'bar';
}

我的视图将能够使用它,以及foo属性(不是用户表中的字段)。

@foreach($users as $user)
<p>{{$user->name}} {{$user->foo}}</p>
@endforeach

使用Angular JS + json响应

但是,既然我没有使用刀片而是抓住json并使用Angular JS显示它我无法做到这一点:

<p ng-repeat="user in users">{{user.name}} {{user.foo}}</p>

有没有办法干净地打包json响应,以便我有:

[{"name": "John", "foo": "bar"}, ...]

警告:我之前从未构建过API,去年12月我才开始编程/ web开发。 这是我的尝试:

public function index()
{
  $response = User::all();
  foreach($response as $r)
  {
    $r->foo = $r->foo;
  }

  return $response;
}

是的,有例子:

return Response::json([User:all()], 200);

通常你想要更多但是...

return Response::json([
    'error' => false,
    'data' => User:all()
], 200);

200是HTTP状态代码。

要包含指定这些属性所需的属性,以自动附加到模型中的响应中。

protected $appends = array('foo');

public function getFooAttribute()
{
    return 'bar';    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM