ActiveRow aktivní pouze v podmínce

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

Tento kód vyhodí Invalid argument supplied for foreach()Nette\Database\Table\Selection-> getReferencedTable a Laděnka označí jako zdroj řádek s {$winner->ref(‚user‘)->id}:

{if $task->status > 2 && $task->closed_pikr == 0 && $winner->ref('user')->id == $user->identity->id}
	Úkol hotov
{else}
	{var $offerCount = $task->related('taskoffer')->count('*')}
	<p>Aktuálně <strong>{$offerCount}</strong> {if $offerCount==1}nabídka{elseif $offerCount<5}nabídky{else}nabídek{/if}</p>
{/if}
{$winner->ref('user')->id}

Ale tento kód už proběhne korektně spolu se zbytkem stránky:

{$winner->ref('user')->id}
{if $task->status > 2 && $task->closed_pikr == 0 && $winner->ref('user')->id == $user->identity->id}
	Úkol hotov
{else}
	{var $offerCount = $task->related('taskoffer')->count('*')}
	<p>Aktuálně <strong>{$offerCount}</strong> {if $offerCount==1}nabídka{elseif $offerCount<5}nabídky{else}nabídek{/if}</p>
{/if}
{$winner->ref('user')->id}

Naplnění $winner v presenteru probíhá pomocí:

$task->related('taskoffer')
	->where('selected = 1 OR gopay_session IS NOT NULL')
	->fetch();

Chyba se začala objevovat po updatu z 2.0-dev na 2.0.3. Uniká mi něco?

hrach
Člen | 1834
+
0
-

Prosim vyzkousej jestli to funguje na teto vetvi: https://github.com/…-refactoring