ตัวอย่างที่ 3ในตัวอย่างนี้จะทำการเพิ่ม Routing โดยยังเรียกใช้งานของ Controller ของตัวอย่างที่เเล้วการสร้างเเละกำหนด Routing
โดย จะกำหนด path ให้รับค่า /page/{id}-{title}.{form} ส่วนนี้ /page คือ url ที่จำเป็นต้องใส่ให้ถูก
ส่วน {id} คือ สั่งเกตุในส่วนของ
requirements:
id: \d
ส่วนนี้จะต้องเป็นตัวเลขเท่านั้น จะต่างกับตัวอย่างใน การสร้างเเละกำหนด Routing ตามด้วย - {title} คืออักษรหรือตัวเลขอะไรก็ได้
.{form} สังเกตุที่
requirements:
id: \d
form: html|php
ตรงนี้เราจะบังคับให้ใส่ form ได้ เพียง html หรือ php เท่านั้น เท่านี้ยังไม่พอดูในส่วนของ
defaults: { _controller: SitetestBundle:Default:page,form:html }
form:html คือการระบุค่า Default เข้าไปด้วยในกรณีที่ไม่ได้พิมพ์เข้าไปใน Url ป้องกันไม่ให้ Error
Bundle | Controller Class | Method Name |
TestBundle | DefaultController | page |
routing.yml
sitetest_homepage:
path: /hello
defaults: { _controller: SitetestBundle:Default:index }
block_homepage:
path: /block/{name}
defaults: { _controller: SitetestBundle:Default:block }
page_block:
path: /page/{id}-{title}.{form}
defaults: { _controller: SitetestBundle:Default:page,form:html }
requirements:
id: \d
form: html|php
DefaultController.php
<?php
namespace Site\testBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
public function pageAction($id,$title,$form)
{
return $this->render('SitetestBundle:Default:index.html.twig',
array(
'id' => $id,
'title' => $title,
'form' => $form,
));
}
}
index.html.twig
id = {{ id }} <br>
title = {{ title }} <br>
form = {{ form }}
เมื่อทำการ Run ผลลัพท์คือ แบบระบุ {form}
แบบไม่ระบุ {form} จะใช้ค่า Default คือ form:html
ส่วนรายละเอียด Code ในส่วนของ Controller เเละ twig จะอธิบายในบทเรียนถัดไป