【问题标题】:db::select statement return stdClassdb::select 语句返回 stdClass
【发布时间】:2020-07-11 09:19:43
【问题描述】:

我想做的很简单。

我使用以下语句从数据库中检索我的值:

$result=DB::select("select day from viewholiday where year='{$year}' and month='{$month}'");

然后将其展平以仅从数组中获取值(作为 db::select 返回数组 stdClass)

 $flattenedresult = Arr::flatten($result);

然后在我看来,我想检查保持循环索引的变量“i”是否在此数组中(它们必须是整数。因为正如您从代码中可以理解的那样,它返回天的值,如 3 表示该月的第 3 天等等……)

@if(in_array($i, $flattenedresult)) <th id="holiday">{{$i}}. Day</th>
@else

但是它给出了以下错误并且无法弄清楚如何解决这个问题。

Facade\Ignition\Exceptions\ViewException stdClass 类的对象无法转换为 int

【问题讨论】:

    标签: php mysql laravel laravel-blade


    【解决方案1】:

    您必须使用 get() 来获取值。

    $result=DB::select("select day from viewholiday where year='{$year}' and month='{$month}'")->get();
    

    您可以阅读更多关于它的信息here

    【讨论】:

      【解决方案2】:

      通过添加 pluck 解决了这个问题。下面的语句给出了数组中“day”列的值:

      $result=DB::table('viewholiday')->where('year', $year)->where('month', $month)->get()->pluck('day')->toArray();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多