Ok to jeszcze jedno pytanie:
foreach ($documentData['policies'] as $type => &$policieType) {
foreach ($policieType as &$policy) {
// dla typu TerLifeIns
if ($type == 'TerLifIns' || $type == 'MorIns') {
'name' => '• Rekomendacja Life Term + Mortgage',
'type' => 'textMultiList',
'label' => 'Na podstawie otrzymanych informacji, zalecam Wam / Tobie ubezpieczenie',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getRecomendationTerLifInsData($documentData)[1]
),
'type' => 'textMultiList',
'label' => 'Dodatkowo omówiono i zaproponowano następujące cechy i elementy:',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getRecomendationTerLifInsData($documentData)[2]
),
'type' => 'textMultiList',
'label' => 'Opis Ubezpieczyciela',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getRecomendationTerLifInsData($documentData)[3]
),
),
),
);
}
}
}
Tak jak wyżej mam to teraz. Po zmianach wykonanych wczoraj
Jeśli mam wybrane dwa produkty tego samego rodzaju to dla każdego z tych produktu generuje mi formularz w tych sekcjach multiText, multiText1, multiText2. Czyli mam w sekcji multiText w tablicy (opis pierwszego , potem drugiego) w sekcji multiText1 (opis pierwszegom. potem drugiego)
A jak to zrobić żeby $this->group5 było generowane dla każdej z polis tak abym otrzymał
$this->group $var
$this->group $var2
...
gdzie var to kolejny produkt z tablicy polis.
Jeśli opis nie jest czytelny mogę wrzycić tablice jakie mam ... nie chciałem zaśmiecać dlatego opisałem...Mam nadzieję że czytelnie.
Ps1.
Jeśli mogę prosić o wskazówki to było by super. Pozdrawiam.
===EDIT 01/04/2021 ===PS2 - Nie chcę zakładać nowego wątku, choć może powinienem. ... temat jest oznaczony jako rozwiązany. Nie mniej...
Podaję bardziej obszerny fragment kodu i znów liczę na wskazówki...Bo to chyba muszę ogarnąć jakąś funkcją bo pętlą nie zmierzam nigdzie...
// Tutaj zaczyna się sekcja budowania formularza
private $groups = array(); private $group1 = array(); // ...
// kolejne zmienne dla group
// ...
private $group5 = array();
public function __construct(DocumentData $documentData = null) {
if (!$documentData) {
$documentData = new DocumentData();
}
// pobieranie danych dodatkowych zapisanych w bazie
$dataReader = new AdditionalDataReader();
$additionalData = $dataReader->read();
$documentData = $documentData->getData();
//throw new Exception('<pre>'.print_r($documentData['policies'],1). '</pre>');
'name' => '• Wprowadzenie',
'type' => 'textMulti',
'label' => 'Wprowadzenie',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getIntroData($documentData)
),
),
),
);
// kolejne zmienne dla group
foreach ($documentData['policies'] as $type => $policieType) {
foreach ($policieType as $policy) {
// dla typu TerLifeIns
if ($type == 'TerLifIns' || $type == 'MorIns') {
// Start wypociny --- wiem bez sensu ---
//throw new Exception('<pre>'.print_r($policieType,1).'</pre>');
$count = count($policieType); //throw new Exception('<pre>'.print_r($count,1).'</pre>');
//Co zwraca mi dla np. dwóch zaznaczonych polis $count = 2
//$section_name = 'group5';
//for($n=0; $n<$count; $n++){
//$var = '$section_name . $n';
//throw new Exception('<pre>'.print_r($count,1).'</pre><br><pre>' .print_r($var,1).'</pre>');
// Koniec wypocin
'name' => '• Rekomendacja Life Term + Mortgage',
'type' => 'textMultiList',
'label' => 'Na podstawie otrzymanych informacji, zalecam Wam / Tobie ubezpieczenie',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getRecomendationTerLifInsData($documentData)[1]
),
'type' => 'textMultiList',
'label' => 'Dodatkowo omówiono i zaproponowano następujące cechy i elementy:',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getRecomendationTerLifInsData($documentData)[2]
),
'type' => 'textMultiList',
'label' => 'Opis Ubezpieczyciela',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getRecomendationTerLifInsData($documentData)[3]
),
),
),
);
//throw new Exception('<pre>'.print_r($var,1).'</pre>)');
}
}
//throw new Exception('<pre>'.print_r($group5,1).'</pre>');
}
}
$this->groups = $this->group1 + $this->group5;
//oryginalny wpis $this->groups = $this->group1 + $this->group2 + $this->group3 + $this->group4 + $this->group5 + $this->group6 + $this->group7 + $this->group8;
public function getGroups() {
return $this->groups;
}
//throw new Exception('<pre>'.print_r($policieType,1).'</pre>');
//Otrzymuje
(
(
[company] => Firma
[type] => Term Life Insurance
[no] => 0
[issueDate] => 2017-06-01
[used] => yes
(
[lifeCover] => 75,123
)
(
[lifeCover] => 0
)
(
[sictypedis] => -cos-
[sicdis] => -cos-
)
)
(
[company] => Firma
[type] => Term Life Insurance
[no] => 0
[issueDate] => 2019-06-01
[used] => yes
(
[lifeCover] => 70,000
)
(
[lifeCover] => 50,000
)
(
[sictypedis] => -cos-
[sicdis] => -cos-
)
)
)
Nie chcę dodatkowo zamętlać, ale nie rozumiem dlaczego są utworzone puste zmienne
private $groups = array() private $group1 = array();
ect a potem w funkcji trzeba oczywiście uzyskać dostęp do nich przez $this->group ... Czy to jest kwestia dobrej praktyki? Bo wszystko też mi działa jak usunę te zmienne private i w funkcji będę je tworzył jako $group1, $group2 ect..
No i tak jak już pytałem wcześniej, chicałbym, aby ten fragment kodu generował się dla każdej polisy typu TerLifIns ... Czyli żeby $this->group5_1 a dla kolejnej $this->group5_2 ect...
'name' => '• Rekomendacja Life Term + Mortgage',
'type' => 'textMulti',
'label' => 'Lebel Sekcji',
'optional' => true, // false -> bez checkbox
'partitions' => $this->getData($documentData)
),
),
),
);
===EDIT 06/04/2021 ===
Czy brak sugestii oznaczą, że moje pytanie:
a) jest zbyt trywialne?
b) jest zbyt zawiłe, a odpowiedź skomplikowana (wymaga obszernej modyfikacji kodu)?
c) zostało zadane nieprawidłowo?
d) nieprawidłowo kontynuuję post, w którym zaznaczyłem już "Pomógł" i powinienem otworzyć nowy temat?