2015-04-21 18 views
9

CakePHP 3.0CakePHP'nin 3: rota için eksik rota hatası

Ben var olan bir rota için bir "Eksik Rota" hatası alıyorum bulunmaktadır.

#my admin routes... 
Router::prefix('admin', function($routes) { 
    $routes->connect('/', ['controller'=>'Screens', 'action'=>'index']); 
    $routes->connect('/screens', ['controller'=>'Screens', 'action'=>'index']); 
    $routes->connect('/screens/index', ['controller'=>'Screens', 'action'=>'index']); 
    //$routes->fallbacks('InflectedRoute'); 
}); 

Router::scope('/', function ($routes) { 

    $routes->connect('/login', ['controller' => 'Pages', 'action' => 'display', 'login']);  
    $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); 

    $routes->fallbacks('InflectedRoute'); 
}); 

Plugin::routes(); 

Temelde ben sadece (yönetici yönlendirme) üst bölümü eklendi kutunun çıkıp varsayılan yollarına: Burada

benim yolları vardır.

enter image description here

Bildirimi hata iletisi diyor:

Error: A route matching "array ('action' => 'add', 'prefix' => 'admin', 'plugin' => NULL, 'controller' => 'Screens', '_ext' => NULL, )" could not be found.

... Ben erişmeye çalışan değilim çünkü garip ben ziyaret ettiğinizde

/admin/screens/index aşağıdaki hatayı bakın add eylemi. Aşağıda yazdırılan paramitler doğru görünüyor.

Neler oluyor?

+0

Urgh Cake. 2.0'ı kullanarak önbelleğe alınmış modeller ile ilgili sorunlar yaşadım. Hata ayıklamasının 2'yi çözeceğini buldum. Önbelleği temizlediniz varsayarak tahmin ediyorum –

+0

Hata ayıklama yapılandırmaları biraz değişmiş gibi görünüyor. Şimdi 'TRUE' olarak ayarladığım bir boole. Sadece güvende olmak için tüm önbellek dosyalarını tmp olarak sildim ve hala bunu yapıyor. – emersonthis

+0

Bu benim gideceğim egzersizi. Görünüşe göre ndm daha yararlı bilgiler içeriyor –

cevap

11

Stacktrace'e daha yakından bakın, göründüğü gibi, yükleme işleminde hata oluşmaz, görüntü şablonunuzda tetiklenir ve muhtemelen add numaralı bağlantıya bağlantı oluşturmaya çalışılır. eylem ve ters yönlendirme, eşleşen bir yol bulamıyor, dolayısıyla hata.

çözüm

$routes->connect('/screens/add', ['controller' => 'Screens', 'action' => 'add']); 

Tümünü yakalama olanlar

$routes->connect('/screens/:action', ['controller' => 'Screens']); 

veya basitçe her şeyi yakalamak yedek olanlar gibi o açık olanlar olmak gerekli yolları bağlamak, açık olmalı

$routes->fallbacks('InflectedRoute'); 
+1

Tekrar çivilenmişsin! – emersonthis

0

Kullanım ön hazırlığı için bu çalışma admin: -