Problém s modulem a routováním
- Mysteria
- Člen | 797
Zdravím, rozhodl jsem se poprvé v Nette aplikaci využít moduly pro lepší členění a podobně, ale nedaří se mi je rozchodit.
Struktura složek je následující:
app
…FrontModule
......presenters
.........BasePresenter.php
.........DefaultPresenter.php
......templates
.........Default
............default.latte
BasePresenter obsahuje toto:
<?php
namespace FrontModule;
use Nette, Model;
abstract class BasePresenter extends Nette\Application\UI\Presenter {
}
DefaultPresenter toto:
<?php
namespace FrontModule;
use Nette, Model, Nette\Application\UI\Form;
class DefaultPresenter extends BasePresenter {
}
Router mám takto:
<?php
namespace App;
use Nette, Nette\Application\Routers\RouteList, Nette\Application\Routers\Route;
class RouterFactory {
/** @return \Nette\Application\IRouter */
public function createRouter() {
$router = new RouteList();
$router[] = new Route('<presenter>/<action>', 'Front:Default:');
return $router;
}
}
Výsledek je:
Cannot load presenter 'Front:Default', class 'App\FrontModule\DefaultPresenter' was not found in 'D:\WebServer\www\projekt\app\FrontModule\presenters\DefaultPresenter.php'.
Screen routeru z laděnky vypadá takto.
Info: Apache/2.4.6 (Win32) PHP/5.5.5, Nette Framework 2.1-dev (revision 2855c33 released on 2013–08–28).
Snad jsem dodal všechno, co je potřeba. Díky za pomoc.
EDIT:
Pokud mám router takto:
<?php
namespace App;
use Nette, Nette\Application\Routers\RouteList, Nette\Application\Routers\Route;
class RouterFactory {
/** @return \Nette\Application\IRouter */
public function createRouter() {
$router = new RouteList();
$router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('<presenter>/<action>', 'Default:default');
return $router;
}
}
tak chyba je stejná jako výše, ale router screen vypadá už lépe.
Editoval Mysteria (4. 11. 2013 11:27)
- Jarek92
- Člen | 91
Ahoj, nechci zakládat nové vlákno, tam bych se zeptal tady. Mám router nastavený stejně jako Mysteria. Když mám jen Front modul, tak vše funguje, ale jakmile chci přidat modul Admin na adrese domena/admin, tak mi to vypíše následující chybu:
Nette\Application\BadRequestException #404 → Cannot load presenter ‚Front:Admin‘, class ‚App\FrontModule\Presenters\AdminPresenter‘ was not found in ‚C:\xampp\htdocs\solan\app/FrontModule/presenters/AdminPresenter.php‘.
RouterFactory:
public function createRouter()
{
$router = new RouteList();
$router[] = new Route('index.php', 'Front:Homepage:default', Route::ONE_WAY);
$router[] = $frontRouter = new RouteList('Front');
$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
Díky za reakci.
Editoval Jarek92 (22. 2. 2014 11:13)