From 693889cb3e47e34c37785f77b07f2660300b1430 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Mon, 16 Jul 2018 17:07:00 +1200 Subject: [PATCH] NEW Use Injector to create new class instances and pass $params Also adds a couple of missing PHPDoc annotations for IDE hints --- code/Report.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/Report.php b/code/Report.php index 200a1d2b..dc3a3cca 100644 --- a/code/Report.php +++ b/code/Report.php @@ -164,11 +164,11 @@ class Report extends ViewableData if ($this->hasMethod('sourceRecords')) { return $this->sourceRecords($params, null, null); } else { - $query = $this->sourceQuery(); - $results = new ArrayList(); + $query = $this->sourceQuery($params); + $results = ArrayList::create(); foreach ($query->execute() as $data) { $class = $this->dataClass(); - $result = new $class($data); + $result = Injector::inst()->create($class, $data); $results->push($result); } return $results; @@ -362,7 +362,9 @@ class Report extends ViewableData new GridFieldDataColumns(), new GridFieldPaginator() ); - $gridField = new GridField('Report', null, $items, $gridFieldConfig); + /** @var GridField $gridField */ + $gridField = GridField::create('Report', null, $items, $gridFieldConfig); + /** @var GridFieldDataColumns $columns */ $columns = $gridField->getConfig()->getComponentByType(GridFieldDataColumns::class); $displayFields = []; $fieldCasting = [];