在誤解我有一點學說ORM代碼如下所示:命名空間主義實體名稱解析
$query = $this->entityManager->createQuery('SELECT c FROM specialty\models\entities\Clan c WHERE c.Id = ?1');
這段代碼沒有問題一直爲年齡。我最近重新安裝了我的LAMP堆棧環境和我的Netbeans IDE,只是從SVN中檢出代碼。然而,現在的這段代碼拋出了以下錯誤:
exception 'Doctrine\ORM\Query\QueryException' with message '[Semantical Error] line 0, col 14 near 'specialty\modelsentities\Clan': Error: Class 'specialty\modelsentities\Clan' is not defined here.'
望着錯誤信息,存在丟失的「\」「模式」和「實體」之間。雖然這應該是'模型\實體',但它被'看作'模型 - 這肯定不存在 - 因此是錯誤。
出於某種奇怪的原因,斜槓在剝離代碼之前就被剝離了,我想。問題是,我一直無法找到原因。我觀察到,當WHEN子句從語句,像這樣刪除的問題消失:我試圖逃跑可能不可見的控制字符
$query = $this->entityManager->createQuery('SELECT c FROM specialty\models\entities\Clan c');
,檢查線索在php.ini新的環境設置(例如)以什麼可能是錯誤的原因。請幫忙,謝謝。
如何使用交互式調試器找出它在原理庫上發生的位置? – 2012-03-27 22:48:51
如何爲您的實體聲明一個名稱空間? (至少嘗試一些東西),嘗試在Clan類聲明的頂部添加'namespace specialty \ modelsentities \ Clan'來查看會發生什麼 – jere 2012-03-28 14:13:12
@Keyne:我嘗試使用xdebug,但無法追蹤它。不確定在MVC應用程序上使用xDebug的最佳方式。謝謝 – 2012-03-28 14:31:02