खोज…


परिचय

रूटिंग एक यूआरएल को एक नियंत्रक से मैप करने की प्रक्रिया है। सिम्फनी में एक शक्तिशाली रूटिंग घटक है जो आपको मार्गों को परिभाषित करने की अनुमति देता है।

रूटिंग घटक कई कॉन्फ़िगरेशन स्वरूपों का समर्थन करता है: एनोटेशन, YAML, XML और कच्चे PHP।

पैरामीटर

पैरामीटर विवरण
नाम मार्ग का नाम। उदाहरण: book_show
पथ पथ (वाइल्डकार्ड शामिल हो सकते हैं)। उदाहरण: /book/{isbn}
चूक मापदंडों का डिफ़ॉल्ट मान

सरल मार्ग

YAML का उपयोग करना:

# app/config/routing.yml
blog_list:
    path:     /blog
    defaults: { _controller: AppBundle:Blog:list }

एनोटेशन का उपयोग करना:

// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class BlogController extends Controller
{
    /**
     * @Route("/blog", name="blog_list")
     */
    public function listAction()
    {
        // ...
    }
}

/blog URL के लिए एक अनुरोध BlogController अंदर AppBundle की listAction() विधि द्वारा नियंत्रित किया जाएगा।

प्लेसहोल्डर्स के साथ रूट

YAML का उपयोग करना:

# app/config/routing.yml
blog_show:
    path:     /blog/{slug}
    defaults: { _controller: AppBundle:Blog:show }

एनोटेशन का उपयोग करना:

// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class BlogController extends Controller
{
    /**
     * @Route("/blog/{slug}", name="blog_show")
     */
    public function showAction($slug)
    {
        // ...
    }
}

URL मिलान /blog/* साथ कोई भी अनुरोध BlogController भीतर AppBundle के showAction() विधि द्वारा नियंत्रित किया जाएगा। नियंत्रक क्रिया को विधि तर्क के रूप में प्लेसहोल्डर का मान प्राप्त होगा।

उदाहरण के लिए, /blog/my-post लिए एक अनुरोध showAction() को एक तर्क $slug साथ एक कॉल ट्रिगर करेगा जिसका मूल्य my-post । उस तर्क का उपयोग करते हुए, नियंत्रक कार्रवाई प्लेसहोल्डर के मूल्य के आधार पर प्रतिक्रिया को बदल सकती है, उदाहरण के लिए डेटाबेस से स्लग माय my-post साथ ब्लॉग पोस्ट को पुनर्प्राप्त करके।

प्लेसहोल्डर्स के लिए डिफ़ॉल्ट मान

यदि आप एक प्लेसहोल्डर चाहते हैं जिसे छोड़ा जा सकता है, तो आप इसे एक डिफ़ॉल्ट मान दे सकते हैं:

YAML का उपयोग करना:

# app/config/routing.yml
blog_list:
    path:      /blog/{page}
    defaults:  { _controller: AppBundle:Blog:list, page: 1 }
    requirements:
        page: '\d+'

एनोटेशन का उपयोग करना:

// src/AppBundle/Controller/BlogController.php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class BlogController extends Controller
{
    /**
     * @Route("/blog/{page}", name="blog_list", requirements={"page": "\d+"})
     */
    public function listAction($page = 1)
    {
        // ...
    }
}

इस उदाहरण में, दोनों /blog और /blog/1 URL blog_list मार्ग से मेल blog_list और listAction() विधि द्वारा नियंत्रित किए listAction()/blog के मामले में, listAction() अभी भी डिफ़ॉल्ट मान 1 साथ $page तर्क प्राप्त करेगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow