ublaboo/datagrid Cizí klíč na hodnotu přes dvě tabulky
- ondrapech
- Člen | 49
Ahoj, dneska jsem začal jednu tabulku předělávat do datagridu, problémem jsou teď u mě cizí klíče, pokud chci nějakou hodnotu přes více tabulek.
public function createComponentOrdersTableGrid($name)
{
$grid = new DataGrid($this, $name);
$orders = $this->ordersModel->getOrders()
->where('status !=', 'opportunity');
if (!$this->user->isInRole('admin') && !$this->user->isInRole('call-center')) {
$orders->where('dealers_id', $this->dealer->getPrimary());
}
$grid->setDataSource($orders);
$grid->addColumnText('code', 'Číslo objednávky');
$grid->addColumnDateTime('created', 'Vytvořeno');
$grid->addColumnText('customers_id', 'Zákazník');
$grid->addColumnText('customers.company_id', 'IČO');
$grid->addColumnText('customers.vat_id', 'DIČ');
$grid->addColumnText('dealers.users.full_name', 'Prodejce');
$grid->addColumnText('status', 'Stav');
$grid->addColumnText('total_price', 'Celková cena');
$grid->addColumnText('points', 'Body');
}
Všechny klíče mi normálně fungují, dokonce i v tabulce jako např.
customers.company_id (u objednávky je uložen zákazník a ten má u sebe
sloupec ičo) problém nastává u prodejce, kdy potřebuju jeho jméno
(u objednávky je uložen prodejce, u prodejce uživatel a ten má sloupec
full_name) tedy: „dealers.users.full_name“.
Nette vrací „Nette\MemberAccessException – Cannot read an undeclared
column ‚dealers.users.full_name‘.“
Moc prosím o radu, jak tohle vyřešit? Cizí klíče mám nastavené správně – jinde v nette to funguje.
PHP7.2, Nette 2.4, Datagrid ^5.7.1
A pak ještě jedna věc. Používám novější fa-icons a v datagridu se mi nezobrazují např. ikony u zobrazení/skrývání sloupců, … S tím jste se nesetkali? (datagrid doplňuje fa fa-… a ty novější ikony jsou fas fa-…) něco jsem vyřešil přes template makro {icon} ale ty zaškrtávátka u výběru zobrazených sloupců třeba ne :( a pak taky ikony u tlačítek akcí.
A poslední věc,
Pokud nastavím text filter na sloupec z cizího klíče, např. Ičo v mém
případě, tak vyhledávání na něm nefunguje.
Editoval ondrapech (21. 6. 2019 14:28)