2009-08-09 8 views
12

मैंने अभी सफलतापूर्वक केकेपीएचपी स्थापित किया है और मुझे लगता है कि मैं home.ctp दृश्य संपादित कर सकता हूं लेकिन क्या इंडेक्स पेज के लिए एक डिफ़ॉल्ट नियंत्रक है?क्या केकपीएचपी स्थापना के लिए इंडेक्स पेज के लिए कोई डिफ़ॉल्ट नियंत्रक है?

To change the content of this page, create: APP/views/pages/home.ctp. 
To change its layout, create: APP/views/layouts/default.ctp. 
You can also add some CSS styles for your pages at: APP/webroot/css. 

उत्तर

7

हाँ, डिफ़ॉल्ट नियंत्रक PagesController में स्थित है:

cake/libs/controller/pages_controller.php 
+6

मुझे लगता है कि इस सवाल का जवाब तरह का खतरनाक है, लेकिन जैसा कि यह गूगल पर पहले परिणाम है, मैंने सोचा कि मैं एक 3 वर्ष पुराने इस सवाल का जवाब स्पष्ट होगा। फ़ाइल केक/libs/नियंत्रक/pages_controller.php कोर स्रोत का हिस्सा है और स्रोत फ़ाइलों को अद्यतन करते समय कोर फ़ाइलों में किए गए किसी भी बदलाव को अधिलेखित किया जाएगा। मार्ग बदलना (तारिक का उत्तर) विन्यास के माध्यम से इस मुद्दे को सारणीबद्ध करता है और यह एक वैध विकल्प है। केकेपीएचपी, हालांकि, कॉन्फ़िगरेशन एथोस पर एक सम्मेलन चलाता है ताकि सर्वोत्तम अभ्यास के मामले में यह वास्तव में हेक्टर समाधान है जिसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए। – Strixy

23

आप इस नियंत्रक के लिए संशोधन बनाना चाहते हैं यह अनुशंसित है कि आप डिफ़ॉल्ट कॉपी

cake/libs/controller/pages_controller.php to app/controller/pages_controller.php

इसका कारण यह है कि आपको "केक" फ़ोल्डर के अंदर कुछ भी संशोधित नहीं करना चाहिए, जहां आपके आवेदन को अपडेट करते समय कोई फ़ाइल ओवरराइटन की जा सकती है नवीनतम केकेपी संस्करण के साथ।

Router::connect('/', array('controller' => 'requests', 'action' => 'index', 'home')); 
और यदि आप, एक कार्रवाई करने के लिए सभी कार्यों कनेक्ट ही कॉन्फ़िग फ़ाइल में नीचे दिए गए कोड का उपयोग करना चाहते

:

+4

केकपीएचपी 2.1 और बाद में, PagesController.php ऐप/कंट्रोलर फ़ोल्डर (कोर फ़ोल्डर के बजाय) में शामिल है और अब कोर स्रोत का हिस्सा नहीं है। – Strixy

13

आप इस तरह के नीचे के रूप में Route::connect() समारोह तर्क बदलकर डिफ़ॉल्ट व्यवहार को बदल सकते हैं :

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); 

बेशक आपको अपनी आवश्यकताओं के लिए तर्क बदलना चाहिए।

यह कॉन्फ़िगरेशन app/config/routes.php के अंतर्गत स्थित है।

Route::connect() के बारे में और अधिक जानकारी प्राप्त करने के लिए, इस पृष्ठ पर जाएँ: http://api.cakephp.org/class/router#method-Routerconnect

संबंधित मुद्दे