trả lời cho Zend Framework 2.5.3 sử dụng Doctrine Data-Fixtures.
Không chắc chắn nếu điều này áp dụng cho câu trả lời đã cho, nhưng họ đang cố gắng một chút quá khó. Nếu bạn kiểm tra đối tượng $manager
đã cho, bạn sẽ thấy rằng nó đã là EntityManager
(trong số interface ObjectManager
) (ít nhất, trong ZF2). Vì vậy, bạn có thể trực tiếp nhận được Connection
và có thể thực thi mà không cần sử dụng $this->container->get('doctrine.orm.entity_manager')
Bên dưới một đoạn mã mà tôi sử dụng để tạo "hệ thống" người dùng đầu tiên với tham chiếu FK createdBy
.
public function load(ObjectManager $manager)
{
$sql = 'INSERT INTO users (
id, username, email, display_name, `password`, created_by)
VALUES (:id, :username, :email, :display_name, :password, :created_by)';
$password = $this->createSuperDuperEncryptedPassword();
// $manager === `EntityManager|ObjectManager`, `->getConnection()` is available
$stmt = $manager->getConnection()->prepare($sql);
$stmt->bindValue(':id', 1);
$stmt->bindValue(':username', 'system');
$stmt->bindValue(':email', '[email protected]');
$stmt->bindValue(':display_name', 'system');
$stmt->bindValue(':password', password);
$stmt->bindValue(':created_by', 1); // Self reference
$stmt->execute();
}
sử dụng Symfony \ Component \ Finder \ Finder; – Nicodemuz