0

我有推进查询

$articles = ArticlesQuery::create()->find();
var_dump($articles);
exit;

它查询文章表(id,users_id,article_category_id,images_id,title,body,approved,created_date,deleted)但我得到的结果非常不同。

预期的结果是

object(PropelObjectCollection)[34]

object(Articles)[35]
  protected 'startCopy' => boolean false
  protected 'id' => int 1
  protected 'users_id' => int 1
  protected 'articles_category_id' => int 1
  protected 'images_id' => int 1
  protected 'title' => string 'Article Title Here updated' (length=26)
  protected 'body' => resource(68, stream)
  protected 'approved' => int 0
  protected 'created_date' => null
  protected 'deleted' => null
  protected 'aUsers' => null
  protected 'aArticlesCategory' => null
  protected 'alreadyInSave' => boolean false
  protected 'alreadyInValidation' => boolean false
  protected 'validationFailures' => 
    array
      empty
  protected '_new' => boolean false
  protected '_deleted' => boolean false
  protected 'modifiedColumns' => 
    array
      empty
  protected 'virtualColumns' => 
    array
      empty

但我得到的结果是

object(PropelObjectCollection)[49]

object(Articles)[50]
  protected 'startCopy' => boolean false
  protected 'id' => int 1
  protected 'users_id' => int 1
  protected 'articles_category_id' => int 0
  protected 'images_id' => int 0
  protected 'title' => string 'xxx@gmail.com' (length=22)
  protected 'body' => resource(71, stream)
  protected 'approved' => int 0
  protected 'created_date' => null
  protected 'deleted' => null
  protected 'aUsers' => null
  protected 'aArticlesCategory' => null
  protected 'alreadyInSave' => boolean false
  protected 'alreadyInValidation' => boolean false
  protected 'validationFailures' => 
    array
      empty
  protected '_new' => boolean false
  protected '_deleted' => boolean false
  protected 'modifiedColumns' => 
    array
      empty
  protected 'virtualColumns' => 
    array
      empty

相同的查询之前工作过。我刚刚开始使用 Propel ORM。我不知道出了什么问题。我已经尝试为 php 重新生成运行时配置,然后生成新的模型类。我已经将 Propel 与 CI 集成在一起。我仍在尝试解决这个问题,但我不知道是什么导致了不同的输出。

4

1 回答 1

1

今天,我犯了一个非常愚蠢的错误,让我付出了数小时的痛苦。

实际上在早上我编辑了一个推进运行时核心文件“runtime/lib/query/ModelCriteria.php”并替换了

$this->modelPeerName = constant($this->modelName . '::PEER'); 
// with 
$this->modelPeerName = 'UsersPeer'

这导致推进仅从用户表返回数据。@j0k 感谢您一直以来的支持,让我一直在调试这个问题。

我之前替换了代码,因为 propel 生成的代码仅适用于 UsersQuery 并且无法找到 constant($this->modelName . '::PEER'); 适当地。

希望这不会发生在任何人身上,我将有跟踪我所做的更改的习惯。找到实际错误后,我恢复到原始来源,查询开始像以前一样工作。

于 2012-09-06T09:39:36.860 回答