Invalid mapping mask pre moduly
- iNviNho
- Člen | 352
Ahojte,
Troška sa hrám s appkou a chcem si zmeniť štruktúru na:
- App
------- Admin
------------- MailerModule
------------------- model
------------------- presenters
------------------- templates
--------------InvoiceModule
--------------UserModule
------- Front
a skúšal som mapping
application:
errorPresenter: Error
mapping:
*: App\*\*Module\Presenters\*Presenter
A dostávam:
Nette\InvalidStateException Invalid mapping mask
Napadá vás niečo? :)
- David Matějka
- Moderator | 6445
to Admin a Front chces mit jako moduly? tzn nazev presenteru bude Admin:Mailer:Abc ?
- iNviNho
- Člen | 352
Unlink napsal(a):
Neviem presne, ale toto by nešlo?
application: errorPresenter: Error mapping: Admin: App\Admin\*Module\Presenters\*Presenter Front: App\Front\*Module\Presenters\*Presenter
Pri tomto mi nefunguje namespace
<?php
// nefunguje
namespace App\Admin\MailerModule;
//funguje
namespace MailerModule;
?>
Ako to spraviť aby to bralov potaz aj App\Admin? :-\
- iNviNho
- Člen | 352
Ok, takže mám
application:
errorPresenter: Error
mapping:
Admin: App\Admin\*Module\*Presenter
Front: App\Front\*Module\*Presenter
Router
<?php
$router[] = new Route('[<locale=sk sk|en>/]admin/<presenter>/<action>[/<id>]', array(
'locale' => 'sk',
'module' => 'Admin',
'presenter' => 'Mail',
'action' => 'default',
));
?>
A napr. MailPresenter
<?php
namespace App\Admin\MailerModule;
class MailPresenter {}
?>
A dostávam error:
Cannot load presenter ‚Admin:Mail‘, class ‚App\Admin\MailPresenter‘ was not found.
Dostávam error
// ten router sa mi nepáči, tam môže byť niekde chybička …
EDIT 1:
Zdá sa, že toto zatiaľ funguje:
<?php
$router[] = new Route('[<locale=sk sk|en>/]admin/<module><presenter>/<action>[/<id>]', array(
'locale' => 'sk',
'module' => 'Admin:Mailer', // Pridanie Admin:
'presenter' => 'Mail',
'action' => 'default',
));
?>
EDIT 2:
Riešenie v EDITE 1 funguje iba konkrétne pre Admin:mailer, nedá sa napísať niečo univerzálnejšie?
Editoval iNviNho (13. 4. 2016 12:53)