Доброй ночи.
Есть таблица `limits` и таблица `limits_params`.
Схемы этих таблицCREATE TABLE limits(
id INT AUTO_INCREMENT NOT NULL,
PRIMARY KEY(id)
) ENGINE = InnoDB;
CREATE TABLE limits_params(
id INT AUTO_INCREMENT NOT NULL,
limit_id INT DEFAULT NULL,
PRIMARY KEY(id)
) ENGINE = InnoDB;
ALTER TABLE `limits_params` ADD CONSTRAINT fk_limit_id FOREIGN KEY (`limit_id`) REFERENCES `limits` (id)
Есть соответствующие сущности Limits и LimitParams.
Открыть код/**
* @ORM\Entity(repositoryClass="App\Repository\LimitsRepository")
*/
class Limits
{
/**
* @ORM\OneToMany(targetEntity="App\Entity\LimitParams", mappedBy="limit", cascade={"persist"})
*/
private $params;
public function __construct() {
$this->params = new ArrayCollection();
}
public function getParams()
{
return $this->params;
}
}
/**
* @ORM\Entity(repositoryClass="App\Repository\LimitParamsRepository")
* @ORM\Table(name="limits_params")
*/
class LimitParams
{
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Limits", inversedBy="params", cascade={"persist"})
* @ORM\JoinColumn(name="limit_id", referencedColumnName="id")
*/
private $limit;
}
Сделал все как по учебнику, по всей логике должно работать. Но не работает, getParams всегда возвращает пустую коллекцию. Пробовал юзать JoinTable в сущности Limits, дабы явно указать на таблицу с $params, но так тоже не работает.
При этом в базе данных есть все записи в обеих таблицах - версия "в таблицe limits_params нет записей" исключена. Записи также нормально создаются при помощи сеттеров в обеих сущностях.
Что я упустил? Почему не работает?