Вопрос

I have controllers

--controllers
  --Administrator
    -Base.php
    -Admin.php (extend Base.php)
-controller1.php
-controller2.php
-etc

And my route looks like this

    Route::set('administrator', 'Administrator(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'Administrator',
    'controller' => 'base',
    'action'     => 'index',
));

Try to load this controller and i get message Not found

What's wrong?

UPDATE!

class Controller_Administrator_Base extends Controller_Template {

    public $template = 'panel/index';

    public function action_index(){
        echo 'kupakonia';
    }
} // End Welcome

All routes. I was trying alot of sugesstions from google and nothing helps, and I write something becouse i cant update this tobic becouse is too much code inside.

Still can't update.

Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
    'controller' => 'read',
    'action'     => 'index',
));
Route::set('user', '(<controller>(/<action>(/<id>)))')
->defaults(array(
    'controller' => 'user',
    'action'     => 'index',
));

Route::set('administrator', 'administrator(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'Administrator',
    'controller' => 'base',
    'action'     => 'index',
));

Any sugestions?

Ps. still can't update this topic :/ Wtf must be more characters in tekst than in code ? this is my first asc on stackoverflow. So sorry for this ;)

Это было полезно?

Решение

You have two catch all routes (default and user) in your Bootstrap file. These two routes do exactly the same.

Also, since these routes are catch all and the order of the routes matter, this means if the catch all route is the first it will match all URLs.

Try this:

Route::set('administrator', 'administrator(/<controller>(/<action>(/<id>)))')
->defaults(array(
    'directory' => 'Administrator',
    'controller' => 'base',
    'action'     => 'index',
));

Route::set('default', '(<controller>(/<action>(/<id>)))')
 ->defaults(array(
    'controller' => 'read',
    'action'     => 'index',
));

Another thing, it is usually bad practice to have a catch all route. Try to create routes specific for your Controllers.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top