2014-02-15 72 views
0

我想作为Backbone docs概述从我Laravel模型检索到一个JSON对象的数据转换。将数据映射到一个JSON对象

我的问题是,当我的数据进行编码我得到的是公共属性和没有(保护)属性 - 那些其实我想要的。这就是我如何去做:

控制器

$movie = Movie::with('awards.award', 'customAwards.awardCustom', 'cast.person', 'imdb.rottenTomatoes')->find($id); 

return View::make('movie')->with(array(
    'movie'  => $movie 
)); 

查看

<script type="text/javascript"> 
    DS.Resources.Movie = {{json_encode($movie)}}; 
</script> 

DS.Resources.Movie输出

{ 
    "timestamps":false, 
    "incrementing":true, 
    "exists":true 
} 

如果我var_dump$movie我可以看到这样的标题,年份,铸造收集,收集奖励等受保护的属性如何访问这些属性并将它们映射到我的JSON对象?

回答

1

雄辩,你应该使用->toJson()因为它正确地只得到了模型的属性,而不是一般的类属性。同样,如果您使用的->with()我认为它会得到你的人际关系。

如果您不希望某些属性在JSON中出现(如密码字段),则可以在您的类中指定一个名为hidden的数组,请参阅the docs

1

您应该取消保护他们在你的模型。 此外,你应该意识到,你可以在你的模型中使用->toJson()代替json_encode'ing它。