【发布时间】:2020-10-29 23:03:59
【问题描述】:
我目前正在了解 Propel,但我很难让它发挥作用。
为了提供一些背景知识,我想使用 Propel 获取表“消息”的最后一行。为了实现这一点,我想使用“标准”类。
我的问题是执行程序时 PHP 找不到类 Criteria。我知道我必须以某种方式导入该类,但我不知道它在哪里。这是我的代码:
<?php
session_start();
// setup the autoloading
require_once '/home/smalburg/propel/vendor/autoload.php';
// setup Propel
require_once '/home/smalburg/propel/generated-conf/config.php';
//Get id from last row in table
$row = MessageQuery::create()->
orderById(Criteria::DESC)->
limit(1)->
find();
?>
我已经使用 composer 安装了 Propel。
这是它可能关注的错误消息(不要介意第 17 行,我已经缩短了代码):
Fatal error: Uncaught Error: Class 'Criteria' not found in /var/www/html/propel/nachrichten_schicken.php:17 Stack trace: #0 {main} thrown in /var/www/html/propel/nachrichten_schicken.php on line 17
请帮帮我,我拒绝在这个问题解决之前上床睡觉。
更新:
我确实去睡觉了。
首先,PetrHejda 的解决方案有效,但我也找到了另一种方法来解决我的具体问题:
而不是使用orderById(\Propel\Runtime\ActiveQuery\Criteria::DESC)->(就像在Petr 的解决方案中一样),可以只说orderById('desc')->,它也可以正常工作。感谢您的帮助!
【问题讨论】:
-
我怀疑 Criteria 在这种情况下是否会位于根命名空间中。因此,您缺少
use语句,或者您需要将完全限定的命名空间添加到 Criteria 类名。你用的是哪个版本的推进器?