Zobrazenie dát z DB na všetkých stránkach
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- SontoEremo
- Člen | 341
Zdravím,
Snažím sa zobraziť v header v mini-košíku produkty z Databázy
WebPresenter.php
<?php
namespace App\Presenters;
use Nette;
use Nette\Application\UI\Presenter;
use App\Model\DataSelect;
abstract class WebPresenter extends Presenter {
/**
* @var \App\Model\DataSelect
* @inject
*/
public $dataSelect;
public function render() {
$this->templates->ShowProducts = $this->dataSelect->findAll();
}
}
DataSelect.php
<?php
namespace App\model;
/**
* Tabulka user
*/
class DataSelect extends \Nette\Object
{
/** @var Nette\Database\Connection */
private $database;
public function __construct(\Nette\Database\Context $database)
{
$this->database = $database;
}
public function findAll()
{
return $this->database->table('kupeny_produkt');
}
public function findById($produkt_id)
{
return $this->findAll()->get($produkt_id);
}
}
Layout.latte
{foreach $ShowProducts as $showProduct}
<li>
<a href="#" class="product-image">
<img src="{$basePath}/assets/web/default/images/products/{$showProduct->obrazok_produktu}" width="70" height="70" alt="">
</a>
<a href="#" class="product-remove" title="Zmazať tovar z košíka">
<span class="glyphicon glyphicon-trash"></span>
</a>
<h4 class="product-name">
<a href="#">
{$showProduct->nazov_produktu}
</a>
</h4>
<div class="product-price">
{$showProduct->mnozstvo_produktu} x <span class="price">{$showProduct->cena_produktu}€</span>
</div>
<div class="clearfix"></div>
</li>
{/foreach}
No vždy mi to vyhadzuje Undefined variable: ShowProducts skúšal som rôzne metódy ktoré som našiel ale vlákno bolo staré aj 3–4 roky ale aj tak som sa k tomu nedopracoval vopred Ďakujem.
- David Matějka
- Moderator | 6445
presenter nema ve svem zivotnim cyklu metodu render, pouzij „beforeRender“
- neznamy_uzivatel
- Člen | 115
$this->templateS->ShowProducts = $this->dataSelect->findAll();
To s tam asi nemá být :)