Ben Kek herhangi bir hata (eksik kontrolör, aksiyon, vs) karşılaştığında Pages::404
işlevi (ve karşılık gelen görünümü) kadar hizmet almak için çalışıyorum cakephp uygulaması var.
Bunu yapmak için en iyi yolu nedir?
Kek otomatik olarak eksik yöntemleri veya denetleyicileri için bir 404 hatası atar. Hata ayıklama modunda, bu hata talimatlarını içeren detaylı bir hata mesajı şeklini alır iken, gibi:
Eksik Denetleyicisi
Hata: FooController bulunamadı.
Hata: dosyada aşağıda sınıfı FooController oluşturun:> app / controllers / foo_controller.php
Dikkat: Eğer app / views / hata / missing_controller.ctp oluşturmak, bu hata mesajı özelleştirmek istiyorsanız,
Üretim modunda (debug = 0
) mesajı sadece bu gibi görünüyor:
Bulunamadı
Hata: İstenen adres '/ foo' bu sunucuda bulunamadı.
Bu hata sayfalar cake/libs/view/errors/
tanımlanmıştır. Hata ayıklama modunda mesajı diyor, sen app/views/errors/
içinde (cake/
dizininde olanlar aynı adı kullanarak) kendi özel hata sayfaları oluşturabilirsiniz.
Eğer hataları özel bir işlevi yürütmek istiyorsanız, en iyi Error Handling açıklandığı gibi AppError
Controller koyacağım.
Adım 1: app_controller.php iki işlevler eklemek
function _setErrorLayout() {
if ($this->name == 'CakeError') {
$this->layout = 'error';
}
}
function beforeRender () {
$this->_setErrorLayout();
}
}
Step2: In views\layouts\
create error.ctp
containing echo $content_for_layout;
step:3 In views\errors\
make missing_action.ctp
and customize the page as you need
my PHP code was:
echo $html->image('404-not-found-1-3.jpg');
Eğer 404 hata sayfasına yönlendirmek için çalışıyoruz denetleyicisi mı?
Bu durumda eğer Eh, böyle sorunu etrafında yürüyüş yapabilirsiniz:
Copy and paste the error layout (error404.ctp) from the cake core library directory into yours app/views/errors/
Bir denetleyici içinde bir hatayla karşılaşırsanız zaman sonra aşağıdaki satırı ekleyin.
$this->cakeError('error404',array(array('url'=>'/')));
Oh, bu işlemek için başka bir yolu app / config routes.php dosyasını düzenlemek için
CakePHP Official site Routes-Configuration
Ben şu anda CakePHP çalışan bir kopyasını yok, bu yüzden sadece (eğer routes.php dosyası içinde ne yapabilirim) burada temel mantığı tarif edersiniz
Redirect traffic with specific url patterns(say, http://yourwebsite/validController/validFunction/validParam) to their corresponding destinations respectively. Redirect all other traffic (missing controller, model, view, etc) to 404 page.
Umarım ki olur :)