Я использую Doctrine2 + CodeIgniter2 и пытаюсь создать простой тест таблицы соединений.Вставка внешнего ключа через объект доктрины?
Вот моя схема для двух таблиц, участвующих:
CREATE TABLE test_lastnames (ID INT NOT NULL AUTO_INCREMENT, last_name VARCHAR (255) NOT NULL, PRIMARY KEY (ID)) ENGINE = InnoDB;
CREATE TABLE test_firstnames (ID INT NOT NULL AUTO_INCREMENT, mylastname_id INT DEFAULT NULL, то first_name VARCHAR (255) NOT NULL, ИНДЕКС IDX_23D7305696EC0FA4 (mylastname_id), первичный ключ (ID)) ДВИГАТЕЛЬ = ЬшоВВ;
ALTER TABLE test_firstnames ADD CONSTRAINT FK_23D7305696EC0FA4 ИНОСТРАННОЙ КЛЮЧ (mylastname_id) ссылки test_lastnames (ID)
Вот мои YAML отображения
ORM\Testing\Firstnames:
type: entity
table: test_firstnames
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
firstname:
type: string
column: first_name
manyToOne:
mylastname:
targetEntity: ORM\Testing\Lastnames
и
ORM\Testing\Lastnames:
type: entity
table: test_lastnames
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
lastname:
type: string
column: last_name
Я пытаю для записи данных в таблицы.
$new_lastname = new ORM\Testing\Lastnames;
$new_lastname -> setLastName ('Shakespear');
$this->doctrine->em->persist($new_lastname);
$this->doctrine->em->flush();
$new_firstname = new ORM\Testing\Firstnames;
$new_firstname->setFirstname('William');
$new_firstname->setMyLastName($new_lastname ->getID());
$this->doctrine->em->persist($new_firstname);
$this->doctrine->em->flush();
возвращает следующие ошибки:
Сообщение: Аргумент 1 передается ORM \ Testing \ Firstnames :: setMylastname() должен быть экземпляром ORM \ Testing \ Lastnames, целое число данного, называемых в /[PATH]/applicationFolder/controllers/testing/test_namejoins_insert.php по строке 31 и определил
Имя файла: Тестирование/Firstnames.php
Порядковый номер: 66
А также связка Message: spl_object_hash() expects parameter 1 to be object, integer given
ошибок.
Вот строка 66 из Firstnames.php: public function setMylastname(\ORM\Testing\Lastnames $mylastname = null)
Я еще не начал взлома на него - это проблема там с '$ mylastname = нуль?
Как вставить значение внешнего ключа сущностью?