我从 Laravel 数据库查询命令获取了我的数据:
$group = DB::table('groups')->where("id", $group_id)->first();
当我 var dump 我的数据时,我得到:
object(stdClass)#200 (7) {
["id"]=>
int(1)
["levels_id"]=>
int(1)
["title"]=>
string(8) "Novice 1"
["description"]=>
string(11) "Lorem Ipsum"
["max_question_display"]=>
int(5)
["created_at"]=>
NULL
["updated_at"]=>
NULL
}
我想访问 max_question_display
。但是当我这样做时:
var_dump($group["max_question_display"]);
PHP 返回错误 Cannot use object of type stdClass as array
。
当我这样做时:
var_dump($group->max_question_display);
我得到:
int(5)
但我不想要 int
。我只想要 5
。整数形式。
如果我foreach
循环$group
:
foreach ($group as $t) {
echo "<pre>";
var_dump($t);
echo "</pre>";
}
我在每个循环中将每个数据作为单个数据获取。
int(1)
int(1)
string(8) "Novice 1"
string(11) "Lorem Ipsum"
int(5)
NULL
NULL
这显然也不是我正在寻找的结果访问方式。
我也尝试获取数组的第一个元素,认为这可能是一个只有 1 个元素的数组,但也引发了同样的错误。
我知道这个站点关于这个错误的一般答案是“stdClass 不是数组”。我浏览了几个与我的标题相似的问题,但没有解决来自 Laravel DB 的对象。当我阅读有关 Laravel DB 的手册时,我确信我可以像访问简单的字典/ HashMap 一样访问返回的数据。
编辑:抱歉,我理解我非常非常新手的错误。无需回答这个问题。谢谢。
最佳答案
注意第一个 var_dump 的第一行:
object(stdClass)#200
因为您正在处理一个对象,所以您可以使用 ->
访问它的属性。当你这样做时:
var_dump($group->max_question_display);
您在输出中看到 (int)
的原因是 var_dump
函数在值旁边显示了值类型。要访问该值,请执行
$group->max_question_display;
如果你想在没有类型的情况下在屏幕上看到它,请使用 echo
echo $group->max_question_display; // 5
关于php - 从 Laravel 数据库查询结果中访问明显存在的整数类型数据时出现错误 "Cannot use object of type stdClass as array",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543175/