PHP Nette - jak používat model prakticky

PHP Nette - jak používat model prakticky

Ahoj, skoro všude čtu informaci, že pro složitější operace v PHP Nette není vhodné tyto operace provádět v presenteru, ale používat k tomu model, nevím však jak. Poradíte mně někdo jak používat v Nette model?

ODPOVĚĎ


Ahoj,




jak používat model v Nette si můžeme ukázat na této ukázce, kdy vytvoříme model v souboru app/model/PomocneFunkce.php, který bude sloužit k tomu, aby nám zobrazoval uživatelské jméno právě přihlášeného uživatele pomocí metody showUser($uid):

namespace App\Model;

use Nette;
use Nette\Security\User;

class PomocneFunkce
{
use Nette\SmartObject;

private $database;
private $user;

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

public function showUser($uid)
{
if (isset($uid)) {

$username = this->database->table('users')
->select('username')
->where('id ?', $uid)
->order('datum DESC')
->fetch();

$username = $username->username;

} else {

$username = "Host";

}

return $username;

}
}





Že existuje nějaký model PomocneFunkce.php musíme Nette řici v souboru app/config/config.neon

services:
- App\Model\PomocneFunkce





Model PomocneFunkce.php chceme používat v tomto případě v BasePresenteru, proto musíme model použít (use) a injektnout (@inject):

namespace App\Presenters;

use Nette;
use Nette\Security\User;
use App\Model\PomocneFunkce;

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

/**
* @inject
* @var PomocneFunkce */
public $modelPomocneFunkce;

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

$uid = $this->user->id;
$this->template->userInfo = $this->modelPomocneFunkce->showUser($uid);

}

}

Komentáře

Vaše reakce na PHP Nette - jak používat model prakticky

Související obsah

programovani

php

nette

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.