簡體   English   中英

將Laravel中的數據映射到JSON對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM