contributte/datagrid – inline editace na řádku id=0
- adam_frajer
- Člen | 14
Zdravím,
mám problém s inline editací v contributte/datagrid u řádky, který
má id 0.
Vrací se mi chyba Component with name '_id' does not exist.
.
Kód v datagrid.latte vypadá takto:
<td class="col-action col-action-inline-edit">
{input $filter['inline_edit']['cancel'], class => 'btn btn-xs btn-danger'}
{input $filter['inline_edit']['submit'], class => 'btn btn-xs btn-primary'}
{input $filter['inline_edit']['_id']}
{input $filter['inline_edit']['_primary_where_column']}
</td>
Jinak když řádku nastavím jiné id, inline editace normálně funguje,
ale s id = 0 to prostě vrací chybu…
Poradíte prosím, jestli tato chyba jde nějak obejít, nebo co s tím?
edit: kód pro inline validaci vypadá takto:
$grid->addInlineEdit()
->onControlAdd[] = function(\Nette\Forms\Container $container): void {
$container->addText('name', '');
$container->addTextArea('description', '',4,4);
};
$grid->getInlineEdit()->onSetDefaults[] = function(\Nette\Forms\Container $container, $item): void {
$container->setDefaults([
'name' => $item->name,
'description' => $item->description,
]);
};
$grid->getInlineEdit()->onSubmit[] = function($id, \Nette\Utils\ArrayHash $values): void {
$this->postModel->update($values, $id);
};
Editoval adam_frajer (21. 8. 2023 13:05)
- Kamil Valenta
- Člen | 799
Také jsem se s tím setkal. „Vyřešil“ jsem to tak, že jsem sám
sobě rozmluvil id=0.
Skutečně ho potřebuješ? Proč?
- adam_frajer
- Člen | 14
Kamil Valenta napsal(a):
Také jsem se s tím setkal. „Vyřešil“ jsem to tak, že jsem sám sobě rozmluvil id=0.
Skutečně ho potřebuješ? Proč?
Jasné no, také možnost :D. potřeboval bych to protože používám cizí číselník, kde používá u jedné položky id=0…
- Kamil Valenta
- Člen | 799
Cizí id si eviduj v jiném sloupci, jako externí data. Cokoliv je cizí, nemusí být validní. Ale PK si definuj sám a máš klid.
- adam_frajer
- Člen | 14
Kamil Valenta napsal(a):
Cizí id si eviduj v jiném sloupci, jako externí data. Cokoliv je cizí, nemusí být validní. Ale PK si definuj sám a máš klid.
To je dobrý nápad… díky moc!