Php 迭代PersistentCollection时出现问题
我是一个新的信条,我在一个PersistentCollection上遇到了一个问题,我有一些基本的实体,它们建立了很多关系:Php 迭代PersistentCollection时出现问题,php,doctrine-orm,Php,Doctrine Orm,我是一个新的信条,我在一个PersistentCollection上遇到了一个问题,我有一些基本的实体,它们建立了很多关系: class File { /** * @ManyToMany(targetEntity="Row", mappedBy="file") **/ protected $rows; public function __construct() { $this->rows = new A
class File {
/**
* @ManyToMany(targetEntity="Row", mappedBy="file")
**/
protected $rows;
public function __construct()
{
$this->rows = new ArrayCollection();
}
public function getRows()
{
return $this->rows; //this seems to return a persistantCollection
}
}
class Row {
/**
* @ManyToOne(targetEntity="File", inversedBy="rows")
**/
protected $file;
}
错误日志报告了以下内容,但我无法理解报告的内容
[02-May-2013 09:07:29 UTC] PHP Notice: Undefined index: id in /Applications/MAMP/htdocs/NiCE/datatable.php on line 9
[02-May-2013 09:07:29 UTC] PHP Notice: Undefined index: joinTable in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/DefaultQuoteStrategy.php on line 90
[02-May-2013 09:07:29 UTC] PHP Notice: Undefined index: joinTable in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php on line 969
[02-May-2013 09:07:29 UTC] PHP Warning: Invalid argument supplied for foreach() in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php on line 969
[02-May-2013 09:07:29 UTC] PHP Notice: Undefined index: joinTable in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/DefaultQuoteStrategy.php on line 90
[02-May-2013 09:07:29 UTC] PHP Notice: Undefined index: joinTable in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php on line 1249
[02-May-2013 09:07:29 UTC] PHP Warning: Invalid argument supplied for foreach() in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php on line 1251
[02-May-2013 09:07:29 UTC] PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON' at line 1' in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:646
Stack trace:
#0 /Applications/MAMP/htdocs/NiCE/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(646): PDO->query('SELECT t0.id AS...')
#1 /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php(997): Doctrine\DBAL\Connection->executeQuery('SELECT t0.id AS...', Array, Array)
#2 /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php(928): Doctrine\ORM\Persisters\BasicEntityPersister->getManyToManyStatement(Array, Object(File))
#3 /Applications/MAMP/htdocs/NiCE/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php(2694): Doctrine\ORM\Persisters\BasicEntityPersister->loadMany in /Applications/MAMP/htdocs/NiCE/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php on line 47
问题是我混淆了这些关系,File.rows是OneToMany,而Row.File是manytone。我在方法中所做的就是$File->getRows();foreach($行作为$行)。。。所以代表我来说没有语法错误。