Undefined variable v šablóne

miro_r
Člen | 22
+
0
-

Zdravím,

v Presenteri som použil Database na definovanie nejakých tabuliek, ktoré využívam v šablóne. Pri jednej premennej v šablóne „subjekty“ vyhadzuje stále chybu „undefined variable“, pričom je v presenteri definovaná presne rovnako ako ostatné dve, ktoré sú v šablóne OK. Nedáva to zmysel, dve sú, tretia nie. Už som vymazal aj ->where a –>order či náhodou to nie ale nič nepomáha. Čím by to mohlo byť ?

<?php

declare(strict_types=1);

namespace App\Presenters;

use Nette;


final class SubjektPresenter extends Nette\Application\UI\Presenter
{
	private Nette\Database\Explorer $database;

	public function __construct(Nette\Database\Explorer $database)
	{
		$this->database = $database;
	}

	public function renderShow(int $ids): void
	{
                $this->template->subjekt = $this->database->table('dsubjekt')->get($ids);

                $prdph = $this->database->table('dph_priz')->where('ds',$ids);
                $prdph->order('CONCAT(SUBSTRING(OBDOBIE,3,2),SUBSTRING(OBDOBIE,1,2))');
                $this->template->prdph = $prdph;

                $this->template->subjekty = $this->database->table('dan_vsetci');

                $this->template->prdan = $this->database->table('dan_po')->where('ds',$ids)->order('obd_od');

        }
}

Editoval miro_r (11. 5. 2021 21:51)

nightfish
Člen | 468
+
0
-

@miro_r

  1. Jak vypadá šablona?
  2. Jaké je přesné znění chybové hlášky?
miro_r
Člen | 22
+
0
-

šablona vypadá takto:

{block title}
Subjekt
{/block}


{block content}

{foreach $subjekty as $jeden}
    <tr>
        <td>{$jeden->ds}</td>
        <td>{$jeden->druh}</td>
    </tr>
{/foreach}

<div>{$subjekt->ref('nazov','nazov')->nazov}</div>
<div>{$subjekt->ref('ulica','ulica')->ulica}</div>
<div>{$subjekt->ref('mesto','mesto')->mesto}</div>
<div>{$subjekt->ref('psc','psc')->psc}</div>
<div>{$subjekt->ref('cislo','cislo')->cislo}</div>
<div>{$subjekt->ref('stat','stat')->stat}</div>
<div>{$subjekt->dic} {$subjekt->icdph}</div>
<div>číslo subjektu {$subjekt}</div>


Zoznam dph
<table>
{foreach $prdph as $priznanie}
    <tr>
        <td>{$priznanie->obdobie}</td>
        <td>{$priznanie->dan}</td>
        <td>{$priznanie->aktualizacia}</td>
    </tr>
{/foreach}
</table>

Zoznam dane
<div id="chart_div"></div>
<table>
{foreach $prdan as $dp}
    <tr>
        <td>{$dp->obd_od}</td>
        <td>{$dp->obd_do}</td>
        <td>{$dp->dan}</td>
        <td>{$dp->ddan}</td>
        <td>{$dp->strata}</td>
        <td>{$dp->aktualizacia}</td>
    </tr>
{/foreach}
</table>
{$prdan->count('*')}
{/block}

hláška: Undefined variable $subjekty, did you mean $subjekt?

a zvýraznený riadok : 8: {foreach $subjekty as $jeden}

resp.: 58: foreach ($subjekty as $jeden) /* line 8 */ {

Kamil Valenta
Člen | 752
+
0
-

Tohle Tě udělá co?

public function renderShow(int $ids): void
	{
				dump('JSEM SKUTECNE ZDE');
                //$this->template->subjekt = $this->database->table('dsubjekt')->get($ids);

                //$prdph = $this->database->table('dph_priz')->where('ds',$ids);
                //$prdph->order('CONCAT(SUBSTRING(OBDOBIE,3,2),SUBSTRING(OBDOBIE,1,2))');
                //$this->template->prdph = $prdph;

                $this->template->subjekty = $this->database->table('dan_vsetci');

                //$this->template->prdan = $this->database->table('dan_po')->where('ds',$ids)->order('obd_od');

        }
{block title}
Subjekt
{/block}


{block content}

{foreach $subjekty as $jeden}
    <tr>
        <td>{$jeden->ds}</td>
        <td>{$jeden->druh}</td>
    </tr>
{/foreach}

{*

<div>{$subjekt->ref('nazov','nazov')->nazov}</div>
<div>{$subjekt->ref('ulica','ulica')->ulica}</div>
<div>{$subjekt->ref('mesto','mesto')->mesto}</div>
<div>{$subjekt->ref('psc','psc')->psc}</div>
<div>{$subjekt->ref('cislo','cislo')->cislo}</div>
<div>{$subjekt->ref('stat','stat')->stat}</div>
<div>{$subjekt->dic} {$subjekt->icdph}</div>
<div>číslo subjektu {$subjekt}</div>


Zoznam dph
<table>
{foreach $prdph as $priznanie}
    <tr>
        <td>{$priznanie->obdobie}</td>
        <td>{$priznanie->dan}</td>
        <td>{$priznanie->aktualizacia}</td>
    </tr>
{/foreach}
</table>

Zoznam dane
<div id="chart_div"></div>
<table>
{foreach $prdan as $dp}
    <tr>
        <td>{$dp->obd_od}</td>
        <td>{$dp->obd_do}</td>
        <td>{$dp->dan}</td>
        <td>{$dp->ddan}</td>
        <td>{$dp->strata}</td>
        <td>{$dp->aktualizacia}</td>
    </tr>
{/foreach}
</table>
{$prdan->count('*')}

*}

{/block}

Editoval Kamil Valenta (12. 5. 2021 7:22)

miro_r
Člen | 22
+
0
-

Skúšal som aj dump a nič.

Nakoniec mi to nedalo a pripojil som sa cez ssh na testovací server, kde mi NetBeans má! ukladať súbory. Všetky súbory sú aktualizované večer, len SubjektPresenter má dátum zo včera 15:00, práva rovnaké ako pri iných súboroch. Tak to nebolo nič s nette, ale netbeans zlyhal.

Ďakujem za dump(‚JSEM SKUTECNE ZDE‘);

Editoval miro_r (12. 5. 2021 7:42)