将 Laravel 集合制作成 angular 数组 (octobercms)
Make a Laravel collection into angular array (octobercms)
我设法解决了一个问题,但我不明白为什么它会起作用,而且看起来有点小问题,所以我想知道是否有人可以解释我。我想从我的文章模型中获取文章并在 angular 中检索它,但我很难从 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 上执行 forreach 并且仅当我随后使用 foreach($article->featured_images as $image) { }
时,我就会得到我想要的结果。我觉得我很困惑,有一种更优雅的方法,但多维数组对我来说很难。
foreach
调用正在加载关系,因此将其包含在后续的 JSON 数据中。以下调用将使用预加载预加载关系,并应以相同的方式包含它。
Article::with('featured_images')->take(4)->get();
或者您可以使用 "lazy eager loading"
$result = Article::take(4)->get();
$result->load('featured_images');
我设法解决了一个问题,但我不明白为什么它会起作用,而且看起来有点小问题,所以我想知道是否有人可以解释我。我想从我的文章模型中获取文章并在 angular 中检索它,但我很难从 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)
;
这就是我想要的:http://pastebin.com/MJvnbrrn
但不是这样,没有"featured_images":http://pastebin.com/1Xa3n9fD
如果我在 $result 和 $article 上执行 forreach 并且仅当我随后使用 foreach($article->featured_images as $image) { }
时,我就会得到我想要的结果。我觉得我很困惑,有一种更优雅的方法,但多维数组对我来说很难。
foreach
调用正在加载关系,因此将其包含在后续的 JSON 数据中。以下调用将使用预加载预加载关系,并应以相同的方式包含它。
Article::with('featured_images')->take(4)->get();
或者您可以使用 "lazy eager loading"
$result = Article::take(4)->get();
$result->load('featured_images');