Я создал отдельный класс для одной из моих таблиц данных (скажем, MyTableType
).Внутри ORMAdapter
я создал собственный запрос, который становится довольно длинным и сложным.Вот почему я хотел бы отделить его от кода, который отвечает за создание самой таблицы, и переместить его в какой-то другой класс (например, MyTableQuery
).
Я использую Symfony 4.2 и пакет omines / datatables-bundle.
Что должен возвращать этот класс для запросов?И каков наилучший способ получить возвращенный запрос в MyTableType
?
class MyTableType implements DataTableTypeInterface
{
public function configure(DataTable $dataTable, array $options)
{
$request = $options['request'];
$dataTable
->add('id',
NumberColumn::class,
array(
'label' => 'ID',
'globalSearchable' => false
)
)
Some more columns
->createAdapter(ORMAdapter::class,
array(
'entity' => MyEntity::class,
'query' => function (QueryBuilder $builder) use ($request)
{
//Long query I'd prefer to get from somewhere else
}
)
)
;
}
}
Внутри моей опции query
я бы хотел получить возврат из этого пользовательского класса MyTypeQuery
.Это сделает класс MyTableType
намного чище.Какой лучший способ сделать это?