[英]Mapping data in Laravel to a JSON object
我正在嘗試將從Laravel模型檢索到的數據轉換為JSON對象,如Backbone文檔中所述 。
我的問題是,當我對數據進行編碼時,我得到的只是公共屬性而沒有(受保護的)屬性 - 我真正想要的那些。 這就是我的方法:
調節器
$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對象?
在->toJson()
,你應該使用->toJson()
因為它正確地只獲取模型的屬性,而不是一般的類屬性。 同樣地,如果你使用了->with()
,它會得到你的關系。
如果您不希望JSON中出現某些屬性(如密碼字段),則可以在類中指定一個名為hidden
的數組,請參閱文檔 。
您應該在模型中取消保護它們。 你還應該意識到你可以在模型上使用->toJson()
而不是json_encode。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.