2016-10-24 3 views
0

Как создать много подстраниц, которые имеют одинаковую структуру контента?Создание множества подстраниц, symfony

Должен ли я делать для каждой подстраницы один контроллер и один шаблон ветки или, возможно, я могу сделать один контроллер и один шаблон для всех страниц? Например, каждая подстраница будет иметь свою галерею, форум QA.

+0

Я бы сказал, сделаю 1 файл шаблона, и сделайте контроллер, чтобы получить правильную страницу на основе запроса, а затем заполнить шаблонные вары. вы можете использовать таблицу страниц в своей базе данных или что-то подобное – sietse85

+0

Могу ли я создавать маршруты, получая пули из базы данных? Аналогично контроллеру – alex0

+0

, если вы просто сделаете отправку уникального идентификатора страницы в запросе, вы также можете позволить контроллеру справиться с остальными, нет необходимости в дополнительных маршрутах. – sietse85

ответ

0

Если ваши подстраницы являются динамическими или у них есть определенные уникальные свойства для идентификации, вы должны сделать это с помощью одного controller и одного template.

Даже для динамической компоновки вы можете выбрать динамические шаблоны, которые вызывается из одного Controller.

Только в случае необходимости изменения статического параметра в конфигурации url или частого изменения в вашем источнике resource, перейдите к другому контроллеру.

EDIT

Ниже приведен небольшой код ссылки на то, что я имею в виду.

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; 

class LuckyController extends Controller{ 

    /** 
    * @Route("/subpage/{slug}") 
    */ 
    public function numberAction($slug) 
    { 
     $em = $this->getDoctrine()->getManager(); 

     $subPage = $em->getRepository("AppBundle:SubPage")->findBy(array('slug' => $slug)); 
     if (!$subPage) { 
      throw new NotFoundHttpException('Entity not found!'); 
     } 

     return $this->render('default/sub_page.html.twig', array(
      'subpage' => $subPage 
     )); 
    } 
} 

Я предполагаю, что суб-страницы хранятся в базе данных, и у вас есть ORM, который обрабатывает операции с базой данных через EntityManager

Выход лежит через twig шаблон.

Надеюсь, это поможет.

+0

Сначала нужно сделать таблицу базы данных со всеми подстраницами, а затем для всех маршрутов , и контроллер, которому придется сравнивать запрос с этой базой данных? – alex0

+0

На вашей подстранице должно быть свойство 'slug', которое должно быть уникальным и должно быть частью параметра динамического маршрута. – Jeet

+0

, даже если я хочу 100 подстраниц? – alex0

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