Doctrine — удаление данных из таблицы

#symfony #doctrine-orm #doctrine

#symfony #doctrine-orm #доктрина

Вопрос:

Скажем, у меня есть класс CoreDoctrine.php , и функция внутри него, которая будет использоваться для удаления записи из таблицы, вот код

 public function delete($entityManager, $objek){
        $entityManager->remove($objek);
        $entityManager->flush();
        $entityManager->clear();
        echo "nn Data berhasil dihapus nn";

    }
  

где $objek — это объект, который я хочу стереть, а параметр $ EntityManager — это объект EntityManager Doctrine, который возвращается из функции

и затем я запускаю этот код в index.php вот так

 $doctrine = new CoreDoctrine();
$em = $doctrine->instantiateEntities();  //this function returns the EntityManager object

$doctrine->delete($em, $luki);  //where $luki is the entity object
  

когда я выполняю код, ошибка не отображается, но данные не были удалены из базы данных….
я что-то упустил??

обновление : вот функция insinstantiateEntities() 🙂

 public function instantiateEntities(){
        $paths = array(__DIR__."/src");
        $isDevMode = false;

        // the connection configuration
        $dbParams = array(
            'host' => '127.0.0.1',
            'driver'   => 'pdo_mysql',
            'user'     => 'root',
            'password' => '',
            'dbname'   => 'apbo2',
        );

        $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
        $entityManager = EntityManager::create($dbParams, $config);

        return $entityManager;
    }
  

Комментарии:

1. покажите нам код instantiateEntities . Также рассмотрите возможность использования службы Symfony2 для внедрения EntityManager 😉

2. я обновил вопрос. это instantiateEntities() :))

3. Я вижу. Есть ли какая-то особая причина, по которой вы создаете экземпляры EntityManager самостоятельно? 🙂 Я имею в виду, Symfony2 сделал это за вас…

4. Да, почему бы вам не позвонить с контроллера $em = $this->getDoctrine()->getManager(); ?

5. хм .. я просто пытаюсь собрать все вместе внутри одного класса… это неправильный способ сделать это?