Předání proměnné z basePresenteru

Taps
Člen | 168
+
0
-

Zdravím, chtěl jsem pomocí metody beforeRender získat data z presenteru a vykreslit je v @layout, ale ve finále dostávám tuto chybu Class „SecuredPresenter“ not found. Mohl by mi prosím někdo poradit kde by mohla být chyba? níže uvádím kod


namespace App\Presenters;

use Nette;
use App\Model\PostFacade;

abstract class BasePresenter extends \Nette\Application\UI\Presenter {

	 /** @var \Model\PostFacade @inject */
    public $PostFacade;

    public function beforeRender()
    {
        parent::beforeRender();

        // Získání dat z databáze pomocí vašeho modelu
        $count = $this->PostFacade->getCountDisableItem()->fetch();

        // Předání dat do šablony
        $this->template->data = $count;
    }


    protected function startup() {
      parent::startup();

    }

    /**
     * Metoda pro odhlášení
     */
    public function handleSignOut() {
      $this->getUser()->logout();
      //$this->redirect('Login:');
    }

}
namespace App\Presenters;
use BasePresenter;
use Nette;

abstract class SecuredPresenter extends BasePresenter {

    protected function startup() {
      parent::startup();
      if (!$this->getUser()->isLoggedIn()) {
        $this->redirect('Sign:in',['backlink' => $this->storeRequest()]);
      }

    }


}
declare(strict_types=1);

namespace App\Presenters;

use Nette;
use Nette\SmartObject;
use App\Model\PostFacade;
use App\Model\UserFacade;
use Nette\Security\User;
use Contributte\PdfResponse\PdfResponse;
use SecuredPresenter;
use Nette\Application\UI\Form;
use Nette\Utils\DateTime;

use DateInterval;
use DatePeriod;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Style\Border;




final class PostPresenter extends SecuredPresenter
{
	private Nette\Database\Explorer $database;
	private PostFacade $post;
	private UserFacade $userdb;
	private $item;
	private $id;

	public function __construct(Nette\Database\Explorer $database, PostFacade $post, UserFacade $userdb)
	{
		$this->database = $database;
		$this->post = $post;
		$this->userdb = $userdb;
	}


	public function renderDefault($uzivatel)
	{
		$param = 0;
		$params = $this->getParameters();
		if(isset($params)){
			$this['form']->setDefaults($params);
			$kmc = (isset($params['kmc'])) ? $params['kmc']  : FALSE;
			$uzivatel = (isset($params['uzivatel'])) ? $params['uzivatel']  : FALSE;
			$mesic = (isset($params['mesic'])) ? $params['mesic']  : FALSE;

		}

		$this->template->posts = $this->post->getItems($kmc,$uzivatel,$mesic,1);

	}
Infanticide0
Člen | 64
+
+1
-

use SecuredPresenter;

Máš ho v namespace App\Presenters;

Šaman
Člen | 2635
+
0
-

Všechno je v App\Presenters, takže use není potřeba, ani to use BasePresenter; v SecuredPresenter.
Nejdřív odlaď tuhle chybu, kód presenteru je zbytečný, když není nalezen. Je to hláška Tracy? Používáš celé Nette ( ideálně kostru nette\web-project), nebo si to nějak skládáš sám? Mohlo by to být v Bootstrapu (nastavení robot loaderu), nebo v configu (vytváření presenterů).

Editoval Šaman (22. 3. 9:27)

Taps
Člen | 168
+
0
-

Ano,hlaska je z tracy. Aplikace je postavena na nette\web-project

Marek Bartoš
Nette Blogger | 1177
+
0
-

Přečti si jak fungují importy.
https://www.php.net/…mporting.php

Taps
Člen | 168
+
0
-

Děkuji, v nette jsem začátečník a úvítám jakkouliv radu, případně i rady typu best practices. @MarekBartoš : pokud je někde něco špatně, tak se rád poučím od tebe co by profíka.

Editoval Taps (22. 3. 18:47)