2015-09-24 6 views
0

Для этого вопроса я нашел несколько ответов на переполнение стека, но эти вопросы не помогли решить мою проблему. Я использую структуру symfony2.Вставьте данные из одной таблицы в другую таблицу, используя Symfony

Я хочу вставить данные из одной таблицы в другую и удалить данные в первой таблице.

Предположим, что есть две таблицы под названием Книга & Автор. (обратите внимание, что автор таблица имеет дополнительные поля таблицы)

public function BooktoAuthorAction(Request $request, $id) { 

    $response = new Response(); 
    $em = $this->getDoctrine()->getManager(); 

    $books = $em->getRepository("BooksBundle:Books")->findBy(array('booktype' => 'novel')); 

    $em = $this->getEntityManager();  
    $query = $em->createQuery(
        'INSERT INTO contact(bookName, isbn) 
        VALUES('book_name', 'isbn_no') 
         ); 
    $em = $this->getDoctrine()->getManager(); 

     $em->flush(); 
    } 

    return $response; 
} 

У меня есть поле таблицы под названием «book_type», где я хранить какую категорию частности книга принадлежит to.I хочет изменить тип книги, например, при вставке данных из Книжный стол в таблицу авторов. Я хочу изменить book_type. «Роман» на «драму»

Также я хочу удалить строку данных из таблицы книг, как только данные будут переданы в таблицу авторов.

* обратите внимание, что я изменил имена переменных. Имена методов реального кода.

UPDATE

Я нашел решение для моих problem.I обновили code.I'm Теперь передавая данные из книги таблицы Автора таблицы с помощью объектов вместо запросов.

* Автор и книги два разных лица в двух различных Связки

public function BookAuthorAction(Request $request, $id) { 

    $response = new Response(); 
    $em = $this->getDoctrine()->getManager(); 

    $books = $em->getRepository('BooksBundleBundle:Books')->find($id); 
    $author = new Author(); 

    $author->setBookName($books->getBookName()); 
    $author->setIsbnNo($books->getIsbnNo()); 

    $author->setBookType('drama'); //passing a string as a book type 

    $em->persist($author); 
    $em->remove($books); 
    $em->flush(); 

    return $response; 
} 
+0

Почему бы вам просто не запустить пару запросов в MySQL вместо этого? –

+0

Я не могу работать над проектом. Где детали формы передаются в таблицы с помощью методов действий – Cnf271

+0

Я вижу, вы все равно можете использовать его через свои функции (я думаю) ... 'INSERT INTO table1 (field1 , field2, booktype, field n) SELECT field1, field2, 'drama', fieldn из таблицы2 WHERE author = 'xxx' и booktype = 'novel'', затем 'DELETE from table2 WHERE author =' xxx 'и booktype =' novel ' ' Не было бы интересным, если бы одна книга могла вписаться в более чем одну категорию? Это может быть как роман, так и драма, например? –

ответ

0

Попробуйте Отображение таблиц и обновление соответственно; This может помочь

Смежные вопросы