ACL se společnými models, nenalezne proměnnou
- Phalanx
- Člen | 310
Dobrý den, už mě tato chyba dohnala k radě na fóru. Mám klasickou ACL aplikaci s rozdělením na AdminModul a UserModul. V obou těchto modulech chci načítat z models.
app\models\PrizeModel.php
<?php
class PrizeModel
{
public function findAllPrizes($order = NULL, $where = NULL, $offset = NULL, $limit = NULL)
{
return dibi::query(
'SELECT * FROM [prize]',
'%if', isset($where), 'WHERE %and', isset($where) ? $where : array(), '%end',
'%if', isset($order), 'ORDER BY %by', $order, '%end',
'%if', isset($limit), 'LIMIT %i %end', $limit,
'%if', isset($offset), 'OFFSET %i %end', $offset
)->setRowClass('PrizeEditModel');
}
?>
app\models\PrizeEditModel.php
<?php
class PrizeEditModel extends DibiRow
{
public function __construct($arr = array())
{
parent::__construct($arr);
}
?>
nyní jsem si v app\UserModule\presenters vytvořil PrizePresenter.php, kde chci načíst data z db do proměnné prizes pro template
<?php
namespace UserModule;
class PrizePresenter extends BasePresenter
{
protected function beforeRender()
{
$model = new PrizeModel;
$this->template->prizes = $model->findAllPrizes();
}
}
?>
ale v template app\UserModule\templates\Homepage\prize.latte, ale když jdu na tu stránku píše mi Undefined variable: prizes
<?php
{foreach $prizes as $prize}
<tr>
<td>{$prize->id}</td>
<td>{$prize->points}</td>
</tr>
{/foreach}
?>
Zkoušel jsem si načítat data z db v základní aplikaci bez modulů a tam mi to jde. Budu vděčný za každou radu :(
- jansfabik
- Člen | 193
app\UserModule\templates\Homepage\prize.latte
je šablona pro
akci prize
presenteru HomepagePresenter
PrizePresenter
má šablony ve složce
app\UserModule\templates\Prize
, takže pokud se akce jmenuje
default
(to je výchozí název), tak v ní vytvoř soubor
default.latte
a dej tam kód té šablony