当前位置: 首页 > 知识库问答 >
问题:

Laravel 4在foreach循环中的第一个结果

丁俊智
2023-03-14

这是我在控制器中的getIndex()函数中的东西

public function getIndex() {

    $categories = Category::all();

    foreach ($categories as $category) {
        $categories[$category->id] = $category->name;
    }
......
}

所以我希望从循环中获取所有类别名称。

但是,例如,如果我希望通过在视图中执行此操作来获得结果

        @foreach ($categories as $name) 
            <ul>
                <li>{{var_dump($name)}}</li>
            </ul>
        @endforeach

结果是

>

  • 对象(类别)169(20){[“可填充”:受保护]=

    字符串(3)“foo1”

    第一个结果从哪里来,我如何摆脱它?谢谢!

  • 共有2个答案

    景光赫
    2023-03-14

    第一项保留在第一个$categories数组中。它的id字段的值是1,但是数组中的键当然是零。不存在id为零的项,因此它不会被重写。

    最好这样写:

    public function getIndex() {
    
        $categoryList = Category::all();
    
        foreach ($categoryList as $oCategory) {
            $categories[$oCategory->id] = $oCategory->name;
        }
    
        // ......
    }
    

    或者简单地说:

        foreach (Category::getAll as $category) {
            $categories[$category->id] = $category->name;
        }
    
    胡和煦
    2023-03-14

    你可以试试这个:

    // Get an associative array
    $categories = Category::lists('name', 'id');
    

    然后将其传递给视图并执行循环:

    <ul>
        @foreach ($categories as $id => $name) 
            <li>{{$name}}</li>
        @endforeach
    </ul>
    
     类似资料:
    • 问题内容: 问题很简单。我的代码中有一个循环: 在此循环中,当我们处于第一次或最后一次迭代时,我想做出不同的反应。 这个怎么做? 问题答案: 您可以使用一个计数器:

    • 问题内容: 我想使用两个数组生成一个,一个包含国家/地区代码,另一个包含国家/地区名称。 这是一个例子: 这种方法对我不起作用。有什么建议么? 问题答案: 那是无效的。 您可能想要这样的东西… 另外,使代码成为数组的键会容易得多…

    • 问题内容: 我本来打算通过 在。有几点我不了解。 迭代器函数的用途是什么?没有它,还有什么办法吗? 如下所示,键和值的意义是什么? PS: 我试图在不带参数的情况下运行此函数,但它不起作用。 这是我的: 我的档案: 另一个问题 :如果在控制台中出现条件并显示“ username is thomas”,为什么上面的功能没有打开? 问题答案: 问题1和2 因此,基本上,第一个参数是要迭代的对象。它可以

    • 问题内容: 我有一个foreach循环,我想看看循环中是否存在下一个元素,以便可以将当前元素与下一个元素进行比较。我怎样才能做到这一点?我已经阅读了有关当前和下一个功能的信息,但我不知道如何使用它们。 提前致谢 问题答案: 一种独特的方法是反转阵列 然后 循环。这同样适用于非数字索引数组: 如果您仍然对使用和功能感兴趣,可以这样做: #2可能是最好的解决方案。注意,比较数组中的最后两项后,将停止循

    • foreach循环遍历列表值并将控制变量(var)依次设置为列表的每个元素 - 语法 (Syntax) Perl编程语言中foreach循环的语法是 - foreach var (list) { ... } 流程图 (Flow Diagram) 例子 (Example) #!/usr/local/bin/perl @list = (2, 20, 30, 40, 50); # foreach lo

    • 我有一个用户表和一个高尔夫比赛分数表。当用户参加比赛时,他使用表格在结果表中记录分数。我想显示一个结果表,显示用户的完整列表和比赛的分数。表中有八列分数——每门课一列。我正在努力使用php代码来显示结果分数。如果一名球员已经比赛,他的得分将正确显示,但如果表中的下一名球员没有比赛,则他的得分将显示为表中高于他的球员的得分。这将在列表中继续下去,直到获得真正的分数。我试图找到答案,但没有成功。这是我