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

今日、私は本当にばかげた間違いを犯し、何時間もの苦痛を味わいました。

実際、午前中に、propelランタイムコアファイル「runtime / lib / query / ModelCriteria.php」を編集して、

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

これにより、propelはusersテーブルからのみデータを返しました。@j0kこの問題のデバッグを続けてくれた継続的なサポートに感謝します。

propelによって生成されたコードはUsersQueryに対してのみ機能せず、constant($this->modelName。'::PEER');を見つけることができなかったため、以前にコードを置き換えました。ちゃんと。

これが誰にも起こらないことを願っています。私が行った変更を追跡する習慣があります。実際のエラーを見つけた後、元のソースに戻し、クエリは以前と同じように機能し始めました。

于 2012-09-06T09:39:36.860 に答える