我已經解決了它宣稱該管理類的定製CRUDController並添加行爲需要調用的listAction方法:
class ContractAdminController extends Controller {
public function contractsEnabledAction() {
return $this->listAction();
}
我宣佈這個自定義路線進入管理類:
protected function configureRoutes(RouteCollection $collection) {
parent::configureRoutes($collection);
$collection->add('contracts_enabled', 'contractsEnabled/');
}
然後,覆蓋在管理類中的方法的createQuery,我使用的要求「_route」屬性這樣的:
public function createQuery($context = 'list') {
$query = parent::createQuery($context);
switch ($this->getRequest()->get("_route")) {
case "admin_acme_contract_contracts_enabled" :
$query->andWhere(
$query->expr()->eq($query->getRootAliases()[0] . '.enabled', ':param')
);
$query->setParameter('param', true);
break;
}
return $query;
}
我找到了一種將自定義CRUD控制器鏈接到菜單中的自定義路由的方法。 將configureRoutes方法中的路由聲明到admin類中,然後將相應的操作添加到相應的CRUD控制器中。 在此操作中,我使用與「listAction」中相同的代碼。 所以現在的問題是:如何修改用於從該控制器操作生成列表視圖的查詢? – icedocemile