Tahanie dát z DB bez id podľa záznamu v tabuľke
- SontoEremo
- Člen | 341
Zdravím …
Vopred sa ospravedlňujem za čudesný názov témy a prosím kompetentných
o opravu správneho názvu :)
Takže môj problém
Mám túto tabuľku
CREATE TABLE IF NOT EXISTS `configs` (
`config_name` varchar(255) COLLATE utf8_bin NOT NULL,
`config_value` varchar(255) COLLATE utf8_bin NOT NULL,
`is_dynamic` tinyint(1) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`config_name`),
KEY `is_dynamic` (`is_dynamic`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Kde to vyzerá asi nasledovne
config_name| config_value| is_dynamic
-----------|-------------|-----------
site_desc | description | 0
sitename | Page Name | 0
a v ConfigsModel.php
public function parameterFind()
{
return $this->findAll()
->select('config_value')
->group('config_value')
->fetch();
}
v BasePresenteri.php
public function beforeRender()
{
// Page Name
$this->template->showConfigs = $this->vp_configs->parameterFind();
}
No a nakoniec v šablóne @layout.latte a v includovanej šablóne
main_haed.latte toto
@layout.latte
<title>{include #title} •
{foreach $showConfigs as $showConfig}
{$showConfig}
{/foreach}
</title>
main_haed.latte
<span class="logo-txt">
{foreach $showConfigs as $showConfig}
{$showConfig}
{/foreach}
</span>
Potreboval by som dosiahnuť toho aby stačilo do šablóny vložiť iba
<title>{$showConfigs->sitename}</title>
kde výsledok by bol Page Name a
<span>{$showConfigs->site_desc}</span>
kde výsledok by bol description
Síce mi to teraz ukazuje výsledok Page Name ale viem, že je to hlúpo
napísané…
Ďakujem vopre za akékoľvek nakopnutie.
- Tabetha
- Člen | 140
No skúsil by som niečo takéto či ti to pomôže … a neviem či to nebude potrebné prekonvertovať na object z array
public function parameterFind()
{
return $this->findAll()
->select('config_value, config_name')
->group('config_value')
->fetchPairs('config_name','config_value');
}
Editoval Tabetha (3. 6. 2013 16:04)
- SontoEremo
- Člen | 341
Tabetha napsal(a):
No skúsil by som niečo takéto či ti to pomôže … a neviem či to nebude potrebné prekonvertovať na object z array
public function parameterFind() { return $this->findAll() ->select('config_value, config_name') ->group('config_value') ->fetchPairs('config_name','config_value'); }
Aj to som skúsil
ale akonáhle dám napr. do
<title>{$showConfigs->sitename}</title>
alebo
<title>{foreach $showConfigs as $showConfig}{$showConfig->sitename}{/foreach}</title>
Skončí to chybou
Notice
Trying to get property of non-object
- SontoEremo
- Člen | 341
Tabetha napsal(a):
tak v tom prípade pristupuješ k Array ako k Object … bud to zmen na
<title>{$showConfigs['sitename']}</title>
alebo
$this->template->showConfigs = (object) $this->vp_configs->parameterFind();
Aaaaa sakra máš recht
Funguje perfektne
<title>{$showConfigs['sitename']}</title>
Ja som to síce skúšal ale z inou formácou v ConfigsModel.php
Ďakujem.