2016-07-12 5 views
0

== Контекст ==Symfony 1.4 linkToDeleteMenu Confirm не делает яваскрипта

я должен был сделать объект под названием ProfileSchema с некоторыми полями, которые один является PROJECT_ID. Мне нужно было создать List, Edit, New и т. Д., Для которых я использовал генератор админов. Проблема заключалась в следующем.

У меня есть список проектов, которым они ссылаются на список ProfileSchemas, которые имеют тот же PROJECT_ID, поэтому я был нужен маршрут как:/бэкэнд/проекта /: PROJECT_ID/ListProfileSchema

Я не мог найти способ сделать это с помощью генератора admin (получение project_id в маршрут), поэтому я закодировал вручную все маршруты (около 12, новые, редактировать, удалить, пакетные действия и т. д.) и изменить весь созданный код генератором админ-генератора, чтобы использовать project_id, переданный как параметр, и код, генерируемый генератором объявления в качестве руководства.

== == Вопросы

1) Есть ли способ более простой, чтобы сделать что-то вроде этого?

2) Теперь мне нужно добавить подтверждение Javascript удаления, действия на действия списка, который генерируется методом linkToDeleteMenu

public function linkToDeleteMenu($object, $params){ 
    $url = url_for('project_delete_profile_schema', array('project_id' => $this->project_id, 'profile_schema_id' => $object->getId())); 
    // $url = '/backend/project/1/DeleteProfileSchema/16' 

    return link_to(__($params['label'], array(), 'sf_admin'), $url, $object, array('confirm' => !empty($params['confirm']) ? __($params['confirm'], array(), 'sf_admin') : $params['confirm'], 'project_id' => $this->project_id, 'profile_schema_id' => $object->getId())); 
} 

Приведенный выше код не получает JavaScript. Этот код ниже генерирует ссылку хорошо, и он работает, но я не могу сделать подтверждение появления javascript.

return link_to(__($params['label'], array(), 'sf_admin'), $url, $object); 

И данные подтверждений устанавливаются, как замена $ URL с $ this-> getUrlForAction («Удалить») делает трюк, но с неправильной URL (тот, генерируемый генератором админки).

Кстати, я много искал, пытаясь найти что-то подобное. Единственный подобный вопрос был такой:

Routing exception in symfony ("The "/league/:id_league/members/new" route has some missing mandatory parameters (:id_league)")

Но answear не помогло мне (как значение по умолчанию не является динамическим и не может получить переопределить его)

ответ

0

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

return link_to('Delete', 'project_delete_profile_schema', array('project_id' => $object->getProjectId(), 'profile_schema_id' => $object->getId()), array('confirm' => !empty($params['confirm']) ? __($params['confirm'], array(), 'sf_admin') : $params['confirm'])); 

Вы передаете имя, отображаемое для ссылки в качестве 1-го аргумента, имя маршрута в качестве 2-го аргументов, и необходимые переменные в массиве в 3 параметра для генерации маршрута. Наконец, вы передаете массив для генерации кода подтверждения. Мой маршрут:

project_delete_profile_schema:  
url: /project/:project_id/DeleteProfileSchema/:profile_schema_id 
+0

Вы должны принять свой собственный ответ, затем –

 Смежные вопросы

  • Нет связанных вопросов^_^