2014-02-15 71 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它。