2015-09-21 12 views
5

मैं

ver3.1.3 CakePHP के साथ अनुभव नहीं कर रहा हूँ साथ संगत होना चाहिए मैं निर्देशों का पालन किया लॉगिन प्रमाणीकरण समारोह लागू करने के लिए ; http://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.html

मैं सफलतापूर्वक केकफैप v3.1.3 ऐप को सेंकने में कामयाब रहा।

मैं UsersController.php

साथ एक समस्या है मैं निम्नलिखित कोड की नकल की और http://book.cakephp.org/3.0/en/tutorials-and-examples/blog-auth-example/auth.html से चिपकाया;

public function beforeFilter(Event $event) 
{ 
    parent::beforeFilter($event); 
    // Allow users to register and logout. 
    // You should not add the "login" action to allow list. Doing so would 
    // cause problems with normal functioning of AuthComponent. 
    $this->Auth->allow(['add', 'logout']); 
} //public function beforeFilter(Event $event) 

इस कोड की उपस्थिति ने नीचे दी गई त्रुटि बनाई;

सख्त (2048): अनुप्रयोग \ की घोषणा नियंत्रक \ UsersController :: beforeFilter() होना चाहिए संगत अनुप्रयोग \ नियंत्रक \ AppController :: beforeFilter (केक \ घटना \ घटना $ घटना) [एपीपी के साथ/नियंत्रक \ UsersController.php, लाइन 12] कोड संदर्भ में शामिल हैं - एपीपी/नियंत्रक \ उपयोगकर्ता नियंत्रक.पीपी, लाइन 12 संगीतकार \ Autoload \ includeFile - रूट \ विक्रेता \ संगीतकार \ ClassLoader.php, लाइन 412 संगीतकार \ Autoload \ ClassLoader: : loadClass() - रूट \ विक्रेता \ संगीतकार \ ClassLoader.php, लाइन 301 spl_autoload_call - [आंतरिक], रेखा ?? class_exists - [आंतरिक], रेखा ?? केक \ कोर \ ऐप :: _ classExistsInBase() - कोर \ src \ core \ App.php, लाइन 89 केक \ कोर \ ऐप :: कक्षानाम() - कोर \ src \ core \ App.php, रेखा 66 केक \ Routing \ Filter \ ControllerFactoryFilter :: _ getController() - कोर \ src \ रूटिंग \ फ़िल्टर \ नियंत्रक FactoryFilter.php, रेखा 81 केक \ रूटिंग \ फ़िल्टर \ नियंत्रक फैक्टरीफिल्टर :: पहले डिस्प्च() - कोर \ src \ रूटिंग \ फ़िल्टर \ ControllerFactoryFilter.php, लाइन 49 केक \ रूटिंग \ DispatcherFilter :: हैंडल() - कोर \ src \ रूटिंग \ DispatcherFilter.php, लाइन 145 केक \ घटना \ EventManager :: _ callListener() - कोर \ src \ Event \ EventManager.php, लाइन 38 9 केक \ ईवेंट \ EventManager :: प्रेषण() - कोर \ src \ Event \ EventManager.php, लाइन 355 केक \ रूटिंग \ डिस्पैचर :: प्रेषण() - कोर \ src \ event \ EventDispatcherTrait.php, रेखा 78 केक \ रूटिंग \ डिस्पैचर :: प्रेषण() - कोर \ src \ रूटिंग \ Dispatcher.php, लाइन 62 [मुख्य] ​​- रूट \ webroot \ index.php, लाइन 37

अगर मैं अपमानजनक कोड सेगमेंट को हटा देता हूं, तो त्रुटि गायब हो जाती है। कोड सेगमेंट में क्या गलत है?

+3

संभावित डुप्लिकेट [तरीकों की घोषणा PHP में अभिभावक तरीकों के साथ संगत होना चाहिए] (http://stackoverflow.com/questions/3115388/declaration-of-methods-should-be-compatible-with-parent-methods- इन-पीएचपी) – burzum

+2

* * त्रुटि संदेश पढ़ें। यह आपको पहले से ही स्पष्ट रूप से बताता है कि क्या गलत है। यदि आप अभी भी समझ नहीं सकते हैं तो इसे खोजने का प्रयास करें। यह एक मानक PHP संदेश है और स्टैक ओवरफ्लो पर 1000 बार पहले महसूस किया गया है। मैंने इसे उस कारण से डुप्लिकेट के रूप में बंद करने के लिए वोट दिया है। – burzum

+0

@ burzum, धन्यवाद।मुझे और सावधानीपूर्वक अध्ययन करने दें। – user781486

उत्तर

19

समाधान ऊपर लाइन नहीं है केक बेक किया हुआ संस्करण UsersController.php

use Cake\Event\Event; 

में निम्न पंक्ति जोड़ना है।