什么是在laravel 5.1中为api循环遍历数组的正确方法

时间:2015-08-27 16:21:13

标签: arrays laravel-5.1

我正在尝试遍历数组。我做了一些实验,但它没有正常工作。它输出。但它不会遍历我在数据库中的所有内容。这是我的ApiController的代码

<?php

namespace App\Http\Controllers;

use App\Post;
use App\Http\Requests;

class ApiController extends Controller
{
    public function index()
    {
        foreach (Post::all() as $post )

        return array(
            'results' => [
                array('id' =>$post->title,
                    'marketname' => $post->subtitle),

            ]
        );
    }
}

在我的编辑器中突出显示前一个大括号。当我将鼠标悬停在它上面时,它表示它期待回归。但是,如果我将返回移动到它应该的位置,我就得不到输出。要清楚,我想显示类似的东西

"results": [
{
"id": "1002336",
"marketname": "0.2 Harvest Home Echo Park Market"
},
{
"id": "1006207",
"marketname": "0.3 Echo Park Market"
},
{
"id": "1003343",
"marketname": "0.4 La Familia Verde Farmers Market"
},

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

您需要先收集结果,然后将其返回。

public function index()
{
    $results = array();
    foreach (Post::all() as $post)
    {
        $results[] = array('id' => $post->title, 'marketname' => $post->subtitle);
    }

    return array('results' => $results);
}

您没有获得预期输出的原因是因为您在循环的第一次迭代后过早地返回。