我想获取字段descriptionID和的值paragraphID,但是代码根本看不到它们。text同时,他完美地id看到了田野。我不明白我做错了什么。请帮我找出错误!
P.S. 使用 RedBeanPHP;$texts返回一个对象数组;$text- 具有屏幕截图 1 中所示字段的对象
<?php
$texts = R::find(/* мой запрос (правильный) */);
$paragraphID = 2;
foreach($texts as $text){
echo($paragraphID." - paragraphID<br>");
echo($text->id." / ".$text['id']."<br>");
echo($text->descriptionID." / ".$text['descriptionID']."<br>");
echo($text->paragraphID." / ".$text['paragraphID']."<br>");
echo($text['text']." / ".$text->text);
$paragraphID++;
} ?>
屏幕截图 1:(phpMyAdmin 中的数据库)
屏幕截图 2:(浏览器中显示的内容)


RedBeanPHP 是一个相当奇怪的数据库工具,所以它做到了这一点
RedBean 认为你的数据库中的字段是用snake_case 命名的(这是一种愚蠢的做法,现在仍然很普遍),你会在camelCase 中访问它们(你有OOP 和所有)。它会小心地将名称转换为snake_case。他很好:-)
克服这个问题的唯一方法是在snake_case 中为这些字段设置一个别名。
通过反复试验,我找到了避免此问题的可靠且简单的方法。
一切都可以通过将函数替换
find为getAll:$texts = R::getAll("SELECT * FROM ``mytable`` WHERE ``descriptionID`` = '$id'");因此,在数据库中,您可以在此表单中留下 `descriptionID` 和 `paragraphID`。
`$text` 对象的字段按如下方式访问:`$text['text']`、`$text['descriptionID']`、`$text['paragraphID']` 等。