Sonata Admin Изменить ссылку «Редактировать» с помощью «Показать ссылку»

Я использую SonataAdminBundle и пытаюсь изменить ссылку редактирования и сущность по ссылке show.

Я хочу сделать это, потому что мне нужно, чтобы объект нельзя было изменить, но я хочу, чтобы вы могли показать объект, щелкнув поле «Идентификатор» на странице списка.

Мне нужно показать объект, щелкнув идентификатор, а не используя кнопку «Показать действие».

Итак, я попробовал в ClassAdmin:

protected function configureRoutes(RouteCollection $collection){

  $collection->add('edit',  $this->getRouterIdParameter().'/show');

}

Несмотря на то, что URL-адрес сгенерирован правильно, идентификатор на странице списка перенаправляет на страницу редактирования. Действительно, независимо от того, что я изменяю в ссылке редактирования, это не вступает в силу и всегда перенаправляет на страницу редактирования.

Большое спасибо!


person Angel    schedule 23.05.2013    source источник
comment
ты очистил кеш?   -  person Nicolai Fröhlich    schedule 23.05.2013
comment
если вам действительно не нужно представление редактирования, просто расширьте представление редактирования и перенаправьте эту страницу на представление показа? Я знаю, что это грязно, но, возможно, это работает.   -  person Baba Yaga    schedule 24.05.2013
comment
Расширить представления редактирования слишком грязно, хахаха, но в последний момент это может быть вариант, если только мне это не нравится :)   -  person Angel    schedule 24.05.2013


Ответы (2)


Вы можете задать действие по умолчанию следующим образом (в ваших классах администратора):

protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('id', null, ['route' => ['name' => 'show']])
    ;
}
person shinework    schedule 28.05.2013

Наконец, это работает:

protected function configureRoutes(RouteCollection $collection){

    $collection->remove('edit');
    $collection->add('edit',  $this->getRouterIdParameter().'/show');

}

Я не знаю, почему я должен сначала удалить ссылку на редактирование... но это работает.

person Angel    schedule 04.06.2013
comment
Я думаю, что ответ @shinework лучше в большинстве случаев. - person abdiel; 21.04.2021