Odkazování mezi modely – Access Forbiden

Dvory59
Člen | 40
+
0
-

Zdravím, potřeboval bych prosím poradit s odkazováním mezi dvěma modely. Mám strukturu

app/
-model
-models
	- Admin
		- presenters
			- DefaultPresenter.php
		- templates
			- Default
				- default.latte
			- @layout.latte
	- Front
		- presenters
			- DefaultPresenter.php
		- templates
			- Default
				- default.latte
		- @layout.latte
-presenters
-router

Router mám pak nastavený :

$router = new RouteList;

		$router[] = $adminRouter = new RouteList('Admin');
		$adminRouter[] = new Route('admin/<presenter>/<action>', 'Default:default');

		$router[] = $frontRouter = new RouteList('Front');
		$frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Default:default');
		return $router;

A v models/Front/templates/Default/default.latte mám odkazy

<a n:href=":Admin:Default:">Admin</a>
<a n:href=":Front:Default:">Front</a>

A k problému. Když otevřu stránku nebo kliknu na odkaz na Front, tak se mi stránka vykreslí, ale když chci přejít odkazem na Admin, tak mi to vyhodí hlášku

Access forbidden!

You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.

If you think this is a server error, please contact the webmaster.
Error 403

V samotných presenterech jsem zatím nic nepřidával, ty jsou prázdné. Zkoušel jsem se inspirovat jinými projekty, ale je to z mé strany trochu střílení do neznáma a nevím, jestli vůbec způsob jakým na tuto problematiku jdu je správný. Mám podezření, že i zobrazení Frontu je dost možná shoda náhod a tak budu vděčný za jakoukoliv připomínku.
Děkuji!

David Matějka
Moderator | 6445
+
+1
-

ahoj. jen pro upřesnění, jedná se o moduly. model je oproti tomu vrstva aplikace, kde třeba komunikuješ s databází nebo něco počítáš.

ta chybu vyhazuje apache, jak jej mas nakonfigurovany? jak vypadaji vygenerovane odkazy? funguje ti u frontu nejaky jiny presenter, než default?

Ondřej Kubíček
Člen | 494
+
0
-

a máš tam htaccess? jinou stránku na frontendu otevřeš?

mapování v configu máš upravené na models / admin / presenters ?

Dvory59
Člen | 40
+
0
-

Zkusil jsem udělat nový presenter ve Frontu se šablonou a ten otevřu (sice bez funkčních css, ale to zatím není podstatný).
Htaccess jsem neměnil, ty jsem nechal jak jsou v základu nastavený, jen jsem přidal jeden, který mi přesměrovává automaticky do www složky.

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^$ www/ [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !^www/
        RewriteRule ^(.*)$ www/$1
</IfModule>

mapování v configu jsem taky neměnil, to mám

application:
	errorPresenter: Error
	mapping:
		*: App\*Module\Presenters\*Presenter

tam možná bude chyba, ale úplně si nejsem jistý jak by měl vypadat.

Vygenerovaný odkaz konkrétně u toho admina vypadá http://project/admin

nastavení appache moc nevím co mám hledat, používám Xampp a tam jsem si akorát v httpd.conf měnil DocumentRoot a pak v httpd-vhosts.conf jsem si přidal dva VirtualHosty

<VirtualHost *:80>
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1 ::1
</Location>
ServerName http://localhost
DocumentRoot "C:\Users\Hugo\Dropbox\programming\php\localhost"
</VirtualHost>

<VirtualHost *:80>
ServerName http://project
DocumentRoot "C:\Users\Hugo\Dropbox\programming\php\localhost\project"
</VirtualHost>
Dvory59
Člen | 40
+
0
-

Co jsem teď zjistil, že když v

$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>', 'Default:default');

nahradím v adrese „admin“ za cokoliv jinýho, třeba

$router[] = $adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('test/<presenter>/<action>', 'Default:default');

tak mě to dál pustí.
Nevíte kde se tato situace dá nastavit?

Ondřej Kubíček
Člen | 494
+
0
-

a nemáš na serveru složku admin nebo tvůj hosting to nějak nerezervuje?