Я делаю светильники, и когда я пытаюсь загрузить их, у меня есть ошибка. Отношения между премией и фильмом являются однонаправленными, поэтому я загружаю первую премию, потому что у нее нет ссылок. Ошибка говорит:[Symfony Component Debug Exception ContextErrorException]
[Symfony\Component\Debug\Exception\ContextErrorException] Warning: spl_object_hash()
expects parameter 1 to be object, array given in
/Users/benatespina/Development/filmboot.web/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/UnitOfWork.php line 1706.
Это мой Крепеж класс:
namespace MyProject\MovieBundle\DataFixtures\MongoDB;
use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use MyProject\MovieBundle\Document\Award;
class Awards extends AbstractFixture implements OrderedFixtureInterface {
public function load(ObjectManager $manager) {
$awards = array(
array(
"name" => "Sitges",
"year" => "1992",
"category" => "Best director"
);
foreach ($awards as $i => $award) {
$document = new Award();
$document->setName ($award["name"]);
$document->setYear ($award["year"]);
$document->setCategory($award["category"]);
$manager->persist($document);
$this->addReference("award-" . $i, $award);
}
$manager->flush();
}
public function getOrder() {
return 1;
}
}
Вы используете $ i в $ this-> addReference ("award-". $ I, $ award); но вы нигде не определяете его. –
Это потому, что вы используете foreach вместо цикла for, вам либо нужно изменить свой цикл, либо вам нужно добавить $ i, который вы обновите самостоятельно. – Sammaye