Problém s generováním kódu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Carson
- Člen | 35
Ahoj,
Aktuálně pracuji na generování určitého konfiguračního souboru. Vše si myslím že mám napsané tak jak by mělo, ale bohužel mi to vrací jen 1 řádek. Níže je můj kód. Prozatím si to jen dumpuji ale bez úspěchu. Vždy to vrátí jen 1 řádek.
Presenter
public function renderGenerateConfig()
{
$this->template->Budles = $this->GenerateModel->GenerateBudle();
$Config = $this->GenerateModel->GenerateConfig();
$this->template->GetConfig = $Config;
foreach ($Config as $First => $Second)
{
dump($First);
dump($Second);
}
$VariableList = array(
'%sysname%' => 'Sysname Switche',
'%domain%' => 'a1m.cz',
'%vlan%' => '103',
);
}
Model
public function GenerateConfig()
{
$GetBudle = $this->GenerateBudle();
foreach ($GetBudle as $Budle)
{
$GetCommand = $this->GenerateCommand($Budle->id);
foreach ($GetCommand as $Command)
{
$Config = array(
$Budle->budle => array($Command->command));
dump($Config);
die;
return $Config;
}
}
}
Aktuálně mi to vrací následující pole
array (1)
"sysname %sysname%" => array (1)
0 => "sysname …." (12)
Editoval Carson (30. 10. 2015 13:39)
- webdata
- Člen | 153
No já osobně si myslím, že ve tříde GenerateModel metodě GenerateConfig dělá neplechy to
return $Config;
Dal bych ho až za foreach cyklus asi nějak takhle + úpravy v kódu viz comment:
public function GenerateConfig()
{
$Config = array(); // + definice pole
foreach ($this->GenerateBudle() as $Budle)
{
// Ja bych použil spíš něco jako array_map místo foreach,
foreach ($this->GenerateCommand($Budle->id) as $Command)
{
$Config[] = array( // + index, jinak to pole v poli je zde docela zbytečné,
$Budle->budle => array(
$Command->command,
),);
}
}
return $Config;
}
Editoval webdata (30. 10. 2015 15:25)