我正在尝试使用Laravel使用AngularJs。我已阅读并观看了许多内容,但我找不到使用Laravel关系的任何内容。我的帖子和作者模型之间有很多关系。当使用刀片我可以使用{{$post->author->name}}
获取作者姓名
现在我正在尝试使用angularjs。
class Post extends Eloquent {
public function author()
{
return $this->belongsTo('Author');
}
}
class Author extends Eloquent {
public function posts()
{
return $this->hasMany('Post');
}
}
class UserController extends BaseController {
public function getIndex(){
$posts = Post::where('id','<','10')->get();
return Response::json($posts);
}
}
使用js文件:
// public/js/controllers/mainCtrl.js
angular.module('mainCtrl', [])
.controller('mainController', function($scope, $http, Post) {
$scope.postsData = {};
// loading variable to show the spinning loading icon
$scope.loading = true;
Post.get()
.success(function(data) {
$scope.posts = data;
$scope.loading = false;
});
//dont know how to get author here in foreach method
angular.forEach($scope.posts,function(post)...
});
// public/js/services/commentService.js
angular.module('postService', [])
.factory('Post', function($http) {
return {
// get all the posts
get : function() {
return $http.get('/api/posts/');
}
}
});
<div class="comment" ng-hide="loading" ng-repeat="post in posts">
<h3>Comment #{{ post.id }} </h3> <p>{{post.title}}</p>
{{post.author_id}} / {{post.author.name}}
</div>
我接近解决方案,但仍然困惑如何在Post服务中获取作者姓名。任何帮助都表示赞赏。
由于
答案 0 :(得分:2)
在您的用户控制器中,在检索帖子时急切加载作者,这样就可以通过post.author
public function getIndex(){
$posts = Post::with('author')->where('id','<','10')->get();
return Response::json($posts);
}