Ked poslem pole objektov do template tak v template neviem vytiahnut hodnoty
- figurluk
- Člen | 61
v Presenteri si posielam do sablony pole objektov
$timestamp = strtotime($this->year.'-'.$this->month.'-1');
$item;
for ($i=0; $i < date("t",$timestamp); $i++) {
$item = new CalendarItem($this->database,$i,$this->month,$this->year);
array_push($this->list, $item);
}
trieda CalendarItem vyzera takto
<?php
namespace App\Model;
use Nette;
use Tracy\Debugger;
/**
* Calendar
*/
class CalendarItem extends Nette\Object
{
/** @var Nette\Database\Context */
private $database;
// public function __construct(Nette\Database\Context $database)
// {
// $this->database = $database;
// }
private $numberDay;
private $wordDay;
private $from;
private $to;
private $overtime;
private $note;
private $timestamp;
private $color;
function CalendarItem(Nette\Database\Context $database,$numberDay,$month,$year) {
$this->database = $database;
$this->numberDay = $numberDay;
$timestamp = strtotime($year.'-'.$month.'-'.$numberDay);
$day = date('D', $timestamp);
switch ($day) {
case 'mon':
$this->wordDay = "pondelok";
break;
case 'tue':
$this->wordDay = "utorok";
break;
case 'wed':
$this->wordDay = "streda";
break;
case 'thu':
$this->wordDay = "stvrtok";
break;
case 'fri':
$this->wordDay = "piatok";
break;
case 'sat':
$this->wordDay = "sobota";
break;
case 'sun':
$this->wordDay = "nedela";
break;
}
}
public function getWordDay() {
return $this->wordDay;
}
}
a v sablone mam
{for $i = 0; $i < count($list); $i++}
<tr>
<td>{$i+1}.</td>
<td>{$list[$i]->getWordDay()}</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{/for}
spravny pcoet riadkov to ma ale nedokazem dostat hodnotu wordDay… co mam zmenit ?
Editoval figurluk (26. 7. 2015 18:54)
- Patrik Votoček
- Člen | 2221
V první řadě ti v presenteru chybí
$this->template->list = $this->list;
A řadě druhé šablonu můžeš zjednodušit viz https://latte.nette.org/cs/tags#…
{foreach $list as $item}
<tr>
<td>{$iterator->counter}.</td>
<td>{$item->getWordDay()}</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
{/foreach}
- figurluk
- Člen | 61
to v presenteru mam len ej to nizsie sorry..
ja mam problem so zaregistrovanim toho modelu
v configu mam
- services
- App\Model\UserManager
- App\Model\CalendarItem
Service ‚27_App_Model_CalendarItem‘: Class App\Model\Nette\Database\Context needed by App\Model\CalendarItem::__construct() not found. Check type hint and ‚use‘ statements. search►
- Šaman
- Člen | 2640
V první řadě si dumpni proměnné a lokalizuj problém. Jestli ti jde do šablony co chceš, případně jestli je problém v šabloně nebo presenteru. Podle nadpisu je to dotaz na šablonu, ale ty si tam možná posíláš nějaký nesmysl, soudě podle druhého příspěvku.
A ta chybová hláška říká jasně, v čem je problém – použij
před Nette\Database… zpětné lomítko, nebo ji dej do sekce
use
. Pokud ti to není úplně jasné, tak si nastuduj namespace
v PHP 5.3. Bez toho nemá cenu řešit další věci.
Editoval Šaman (26. 7. 2015 20:49)
- figurluk
- Člen | 61
<?php
namespace App\Model;
use Nette;
class CalendarItem
{
/** @var Nette\Database\Context */
private $database;
private $numberDay;
private $wordDay;
private $from;
private $to;
private $overtime;
private $note;
private $timestamp;
private $color;
public function __construct(Nette\Database\Context $database,$numberDay,$month,$year) {
$this->database = $database;
$this->numberDay = $numberDay;
$timestamp = strtotime($year.'-'.$month.'-'.$numberDay);
$day = date('D', $timestamp);
switch ($day) {
case 'mon':
$this->wordDay = "pondelok";
break;
case 'tue':
$this->wordDay = "utorok";
break;
case 'wed':
$this->wordDay = "streda";
break;
case 'thu':
$this->wordDay = "stvrtok";
break;
case 'fri':
$this->wordDay = "piatok";
break;
case 'sat':
$this->wordDay = "sobota";
$this->color = "B1AAAA";
break;
case 'sun':
$this->wordDay = "nedela";
$this->color = "B1AAAA";
break;
}
}
public function getWordDay() {
return $this->wordDay;
}
}
dal som to teda do use ale stale mam chybu
Service ‚27_App_Model_CalendarItem‘: Parameter $numberDay in
App\Model\CalendarItem::__construct() has no type hint, so its value must be
specified
services:
- App\Model\UserManager
- App\Model\CalendarItem(%numberDay%, %month%, %year%)
- App\Forms\SignFormFactory
router: App\RouterFactory::createRouter
upravil som teda config a teraz mi to pise ze Missing parameter ‚numberDay‘
Editoval figurluk (26. 7. 2015 21:02)