【问题标题】:Getting results from first element of foreach从 foreach 的第一个元素获取结果
【发布时间】:2016-12-14 03:39:09
【问题描述】:

表中有许多匹配的凭据被插入到 foreach 循环中,但是我仅从第一个 foreach 元素中获取结果。我该如何解决?

    foreach($matches as $match)
    {
        $object = $match->object;

        $sales->whereRaw("match (`object`) against (?)", array($object));

        if($match->colourBase == '1')
        {
            $sales->where('colour', '=', 'CC');
            $sales->orWhere('colour', '=', 'CC+DD');

            if($match->maxPrice)
            {
                $sales->where('price', '<=', $match->maxPrice);
            }

            if($match->minPrice)
            {
                $sales->where('price', '>=', $match->minPrice);
            }
        }
    }

    $results = $sales->orderBy('sales.updated_at', 'asc')->get();

@update

这就是我获得 $matches 的方式

 $matches = Match::where('PeopleID', '=', $id)->get();

【问题讨论】:

  • 你为什么用 match->colour == 1
  • @coder 抱歉,我在获取代码时犯了一个错误。现在更正了。
  • 用 $matches 数组更新你的问题
  • @DsRaj 是正确的,您获取 $matches 数组所做的工作更重要,因为除非它出错,否则您最有可能得到错误。
  • @MarkDavidson 你能看看吗

标签: php laravel laravel-4 foreach


【解决方案1】:

如果你只想要一条记录 使用first() 函数。 无需使用 foreach。 :)

$matches = Match::where('PeopleID', '=', $id)->first();

【讨论】:

    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-12-24
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多