2011-07-26 9 views
0

CakePHPからコントローラに行方不明のアクションがありますが、コントローラにアクションホームが定義されていて、空のビューを作成しました。CakePHP - コントローラで定義されていないアクション

<?php 
class PagesController extends AppController { 

    var $name = 'Pages'; 
    var $uses = array('Event', 'News', 'Person', 'Signup', 'Workshop', 'Course'); 

    function home() { 
     $this->layout = 'main'; 
    } 

    function news() { 

    } 

    function events() { 

    } 
} 
?> 

これは私のルートファイルです:

<?php 

    Router::connect('/login', array('controller' => 'users', 'action' => 'login')); 
    Router::connect('/admin/logout', array('controller' => 'users', 'action' => 'logout')); 
    Router::connect('/', array('controller' => 'pages', 'action' => 'home')); 
+0

? –

+0

http:// localhost/trunk/dafe/pages/home – 8vius

+1

PagesControllerを変更した場合、デフォルトルートも変更する必要があります。 –

答えて

2

これを試してみてください:

<?php 
class PagesController extends AppController { 

var $name = 'Pages'; 
var $uses = array('Event', 'News', 'Person', 'Signup', 'Workshop', 'Course'); 

function display() { 

    $path = func_get_args(); 

    $count = count($path); 
    if (!$count) { 
     $this->redirect('/'); 
    } 
    $page = $subpage = $title_for_layout = null; 

    if (!empty($path[0])) { 
     $page = $path[0]; 
    } 
    if (!empty($path[1])) { 
     $subpage = $path[1]; 
    } 
    $this->set(compact('page', 'subpage', 'title_for_layout')); 

    switch ($page) { 
     case 'home': 
      $this->_home(); 
      $this->render('home'); 
     break; 
     default: 
      $this->render(implode('/', $path)); 
    } 
} 

function _home() { 
    $this->layout = 'main'; 
} 

function news() { 

} 

function events() { 

} 
} 
?> 

そして、あなたのルートの先頭に次の行を配置:

あなたからページにアクセスしようとしているどのようなURL
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home')); 
1

あなたのroutes.phpに

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));を削除し、ルートパス経路を変更:Router::connect('/', array('controller' => 'pages', 'action' => 'home'));(これはオプションですが、多分あなたはことをお勧めします)

+0

既にコメントされています。仕事 – 8vius

+0

あなたはルートに他に何か持っていますか? –

+0

ログインとログアウトのためのルーティング – 8vius

関連する問題