Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Data Model Questions /

print array ,another problem


Reply


2 Posts   558 Views

Avatar
snaip

Community Member, 180 Posts

11 January 2012 at 10:36pm

hi

i cant find any solution for my problem (probably pretty easy)

i have an array

$array = array();

$data = DataObject::get('ModulKalendariumRok');
foreach ($data as $row) {
$data = DataObject::get('ModulKalendarium', "Rok = '$row->Rok'");
foreach ($data as $row) {
$array['Kalendarium'][$row->Rok][] = $row->Wydarzenie;
}
}

return new ArrayData($array);

>>>>>> print_r($array) >>>>>>

Array
(
[Kalendarium] => Array
(
[2011] => Array
(
[0] => test 2011
[1] => test v2 2011
)

[2010] => Array
(
[0] => test 2010
)

)

)

how to display it in the template to getting something like this:

2011
- test 2011
- test v2 2011

2010
- test 2010

?

Avatar
Silverfish

Community Member, 59 Posts

12 January 2012 at 12:56am

Hi snaip,

assuming that you create the array() within an Model extending Page / SiteTree I guess I would create a DataObjectSet (http://api.silverstripe.org/2.4/sapphire/model/DataObjectSet.html) and return it to the Template. There you can loop it as a control.

Besides that I think that you should try to get this DataObjectSet directly from DB, without writing it into an array first and than back. Also I would try to get the Set with just one request. Doing DB-Requests (DataObject::get()) within a loop are not ideal for system performance and can be usually replaced by a single one (that's what databases live for ;)).

Regards
SF.