Ublaboo status – cizí entita
- netteho
- Člen | 3
$this->addColumnStatus('orderState', 'Stav')
->setRenderer(function($item) {
return $item->getId();
});
orderState je entita.
State could not be converted to string.
Proč?
… a půjde to vůbec nějak naplnit?
$grid->addColumnStatus('orderState', 'Stav')
->setOptions([1 => 'Zaplaceno', 2 => 'Storno'])
Jak na cizí entity? Trošku se toho bojím.. :-)
Editoval netteho (13. 8. 2019 1:30)
- KristianSubweb
- Člen | 146
netteho napsal(a):
$this->addColumnStatus('orderState', 'Stav') ->setRenderer(function($item) { return $item->getId(); });
orderState je entita.
State could not be converted to string.
Proč?… a půjde to vůbec nějak naplnit?
$grid->addColumnStatus('orderState', 'Stav') ->setOptions([1 => 'Zaplaceno', 2 => 'Storno'])
Jak na cizí entity? Trošku se toho bojím.. :-)
Ahoj ja mi máme podobnú funkcionalitu ale neriešime to cez addColumnStatus ale cez addColumnText
v datagride to vyzerá takto:
$datagrid->addColumnText("payed", "invoice.payed")
->setAlign("center")
->setSortable()
->setTemplate($dir_checkbox, ["presenter" => $presenter]);
Dir je cesta ku .latte kde je upravený ten render.
latte:
{block checkbox}
{if $item->getPayed() == 1}
<input type='checkbox' class='switchButton payed' data-id='{$item->getId()}' checked='checked'>
{else}
<input type='checkbox' class='switchButton payed' data-id='{$item->getId()}'><br>
{var $datediff= $presenter->diffDates(new DateTime(), $item->getDateOfExpiration())}
{if $datediff->invert == 1}
<small class="text-danger">Po splatnosti {$datediff->d} dní</small>
{/if}
{/if}
{/block}
A potom dole tam kde includuješ samotný grid tak už len takto
$(".switchButton").bootstrapSwitch({
size: "mini",
inverse: "true",
onText: "Nie",
offText: "Áno",
onColor: "success",
offColor: "danger",
onSwitchChange: function(event, state) {
var invoiceId = $(event.currentTarget).data("id");
$.nette.ajax({
url: {link setPayed!},
data: {
invoiceId: invoiceId,
value: state
}
});
}
});
A ako si možeš všimnúť v tom JS je ajax request a voláme tam jednoducho handleSetPayed()
Ak chceš potom si ešte možeš v tej handle funcii zavolať prekreslenie tvojho datagridu.
- KristianSubweb
- Člen | 146
netteho napsal(a):
Tohle mi nepomohlo odhledně té cizí entity. Nicméně, alespoň děkuji, že si se snažil mi něco ukázat.
Nokukal som ale šak cez ten $item->cudziaEntita si ju dotiahneš.
- KristianSubweb
- Člen | 146
netteho napsal(a):
Zkoušel jsem například
return $item->cudziaEntita->id
a stále stejný problém.
A používaš Doctrinu a ak áno máš tie tabulky prepojené. Alebo prečo dávaš render najprv si sprav dump() a uvidíš ak ti to vráti entitu a tá bude previazaná s inou tabulkov tak to v tom dumpe pekne uvidíš.
Vpohode sem šupni ten dump($item) nech vidíme ake dáta tam máš.