Používání ArrayHash::from – jak získat z databáze upravitelný array
- vanak
- Člen | 2
Ahoj, mám problém v SettingsManageru ve funkci getSettings, kterou potřebuji k získání nastavení pro vypsání detailu produktu. Používám Nette 3.
Chyba je v tomto kódu:
public function getSettings($date = null)
{
if (is_null($date)) $date = Context::literal('NOW()');
$settings = $this->database->table(self::TABLE_NAME)
->where(self::COLUMN_VALID_FROM . " <= DATE(?) AND " . self::COLUMN_VALID_TO . " >= DATE(?)", $date, $date)->fetch();
if (!$settings) return false;
$settingsArray = ArrayHash::from($settings);
$settingsArray->offsetSet(
self::ATTR_VAT_PAYER,
isset($settings->ref(PersonManager::TABLE_DETAIL_NAME, self::COLUMN_ACCOUNTANT)[PersonManager::COLUMN_TAX_NUMBER])
);
return $settingsArray;
}
Konkrétně je chyba na řádku, kde se snažím pomocí ArrayHash::from udělat z activerow upravitelné pole (pokud to správně chápu).
Vypisovaná chyba je následující: Argument 1 passed to Nette\Utils\ArrayHash::from() must be of the type array, object given, called in C:\xampp\htdocs\eshop\app\EshopModule\model\SettingsManager.php on line 59
Budu moc rád za pomoc!
- Ondřej Kubíček
- Člen | 494
tak chyba mluví jasně, ArrayHash::from()
vyžaduje pole, ty
tam předáváš object ActiveRow
, a ten si budeš muset sám
převést na pole