Reset value of _fail_gracefully (avoid recursively call controller)

Wick Ref: http://codeigniter.com/wiki/Wick/

ผมเจอปัญหาว่าเวลามีการเรียก  $this->load->uri ( … ); ที่ไม่มีอยู่จริง ปรกติแล้วควรจะขึ้น Error ว่าไม่พบ Controller หรืออะไรประมาณนั้น แต่ปัญหาคือเมื่อเรียก controller ที่ไม่มีอยู่จริงแล้ว จะทำให้มันพยายาม load controller ตัวเดิมไปเรื่อยๆ แบบ Recusive.  คิดว่าน่าจะเกิดเฉพาะกรณีที่ คุณเข้าถึง controller หลักโดยไม่ได้ระบุ controller  (หมายถึง มันเข้า default controller) เพราะจะไปมีผลกับตัวแปร  _fail_gracefully ครับ ซึ่งจะกลายเป็น true เมื่อมีการดึง config ตรง default controller มาใช้. วิธีแก้ก็ไม่ยากครับ ตามข้างล่างเลย!

/system/application/libraries/Wick.php

        $router = &load_class('Router');
        $uricla = &load_class('URI');
        $router->_fail_gracefully = false; // <-- Insert this Line
        $router->_set_request($uri);

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.