оператор db :: select возвращает stdClass - PullRequest
0 голосов
/ 31 марта 2020

То, что я хочу сделать, очень просто.

Я извлекаю свои значения из базы данных с помощью следующего оператора:

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

, а затем выравниваю его, чтобы получить ТОЛЬКО значения из массива (как db :: select return array stdClass)

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

тогда, на мой взгляд, я хочу проверить, находится ли переменная 'i', в которой хранится индекс l oop, в этом массиве (они должны быть целыми числами. Поскольку, как вы можете понять из кода, он возвращает значения дни, такие как 3, означают 3-й день месяца и т. д. ...)

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

НО это дает ошибку ниже и не может понять, как решить эту проблему.

Facade \ Ignition \ Exceptions \ ViewException Объект класса stdClass не может быть преобразован в int

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Вы должны использовать get (), чтобы получить значения.

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

Подробнее об этом можно прочитать здесь .

0 голосов
/ 31 марта 2020

Решено с добавлением срывов. В приведенном ниже выражении приведены значения столбца «день» в массиве:

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