【问题标题】:Make a Laravel collection into angular array (octobercms)将 Laravel 集合制作成角度数组(octobercms)
【发布时间】:2016-07-14 00:16:20
【问题描述】:

我设法解决了一个问题,但我不明白为什么它会起作用,而且它似乎有故障,所以我想知道是否有人可以解释我。我想从我的文章模型中获取文章并以角度检索它,我很难从 octobercms 获取带有“featured_images”的子键。我在我的 laravel 控制器中找到了这样的解决方法:

public function test()
{  
    $result = Article::take(4)->get();
    $listarr = array();
    foreach($result as $article) {
        $listarr[] = $article;
        foreach($article->featured_images as $image) {
        }
    }
    return response()->json($listarr);
}

但是,如果我删除了 foreach($article->featured_images as $image) { } 部分,我不会使用 $listarr 获得“featured_images”。如果我 return response()->json($result) ,仅使用 $result 不会给我那些密钥;

这就是我想要的:http://pastebin.com/MJvnbrrn

但不是这样,没有“featured_images”:http://pastebin.com/1Xa3n9fD

如果我在 $result 上作为 $article 并且仅当我随后使用 foreach($article->featured_images as $image) { } 时这样做,我就会得到我想要的结果。我想我很困惑,并且有一种更优雅的方法,但多维数组对我来说很难。

【问题讨论】:

    标签: angularjs laravel multidimensional-array collections octobercms


    【解决方案1】:

    foreach 调用正在加载关系,因此将其包含在后续 JSON 数据中。以下调用将使用预先加载预加载关系,并且应该以相同的方式包含它。

    Article::with('featured_images')->take(4)->get();
    

    您也可以使用“延迟加载”

    $result = Article::take(4)->get();
    $result->load('featured_images');
    

    【讨论】:

      猜你喜欢
      • 2020-08-13
      • 1970-01-01
      • 2019-11-20
      • 2018-09-22
      • 2017-03-07
      • 2016-05-12
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多