id vzdy ‚1‘, i kdyz $id je ruzne

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Tomas Jancik
Člen | 103
+
0
-

zdravim

muj problem:
generuji odkazy na ruzne fotogalerie (Photogallery:view id).
Id databazi ctu z databaze, kdyz ho necham vypsat do textu, vypise se spravne id, ale kdyz ho vlozim do linku (n:href makro), je jeho hodnota vzdy 1. Co je spatne?

Sablona

{foreach $galleries as $gallery}
		<li {if $gallery->photogallery_description}title="{$gallery->photogallery_description}"{/if}>
			<a n:href="Photogallery:view id => $gallery->id">{$gallery->photogallery_name}{$gallery->id}</a>
		</li>
		{if $gallery->photogallery_date OR $gallery->photogallery_place}
		<div class="gallery-listing-details">
			{if $gallery->photogallery_date}<p class="gallery-listing-date">{$gallery->photogallery_date|date:'d. m. Y'}</p>{/if}
			{if $gallery->photogallery_place}<p class="gallery-listing-place">{$gallery->photogallery_place}</p>{/if}
		</div>
		{/if}
	{/foreach}

Presenter

class PhotogalleryPresenter extends BasePresenter
{

	public function renderDefault() {
		$this->template->galleries = PhotogalleryModel::listing();
	}

	public function renderView($id = false) {
		if(!$id) $this->redirect('default');
		$this->template->gallery = PhotogalleryModel::getDetails($id);
	}

}

Definice rout z bootstrapu

$application->onStartup[] = function() use ($application) {
	$router = $application->getRouter();

	$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);

	$router[] = new Route('<presenter>/<action>[/<id [0-9]+>]', 'Homepage:default');
};

do sablony jsem schvalne id vypsal 2×. v linku je vzdy 1, v textu ma svou spravnou hodnotu
vystup:

<li >
			<a href="/tsfreedance.cz/www2/photogallery/view/1">Přehlídka podiových skladeb1</a>
		</li>
		<div class="gallery-listing-details">
			<p class="gallery-listing-date">30. 04. 2011</p>
			<p class="gallery-listing-place">Tovačov</p>
		</div>
		<li title="Vystoupení na akci Řezbářská dílna 2008">
			<a href="/tsfreedance.cz/www2/photogallery/view/1">Řezbářská dílna 2008		4</a>
		</li>
		<div class="gallery-listing-details">
			<p class="gallery-listing-date">21. 06. 2008</p>
			<p class="gallery-listing-place">Národní dům Prostějov</p>
		</div>
		<li title="Fotografie našich tanečních sálů">
			<a href="/tsfreedance.cz/www2/photogallery/view/1">Naše taneční prostory2</a>
		</li>
		<div class="gallery-listing-details">

			<p class="gallery-listing-place">Vrahovická 83, Prostějov</p>
		</div>
		<li title="Straší nezařazené fotografie TS FREE DANCE">
			<a href="/tsfreedance.cz/www2/photogallery/view/1">Taneční historie3</a>
		</li>

Editoval Tomas Jancik (1. 7. 2011 21:21)

voda
Člen | 561
+
0
-

Zkus změnit výchozí hodnotu parametru $id, takhle ti to převádí na boolean.

public function renderView($id = null) {
        if(!$id) $this->redirect('default');
        $this->template->gallery = PhotogalleryModel::getDetails($id);
}

Příště prosím kódy obarvit, lépe se to pak čte.

Tomas Jancik
Člen | 103
+
0
-

diky moc… netusil jsem ze tohle bude mit vliv i na routy…

PS: kod jsem obarvil… bylo to poprve co jsem kod vkladal :) poucil jsem se