2016-07-12 14 views
0

== == KontextSymfony 1.4 linkToDeleteMenu Bestätigen machen kein Javascript

ich eine Einheit machen musste ProfileSchema mit einigen Feldern genannt, die man project_id ist. Ich musste eine Liste erstellen, bearbeiten, neu, usw., für die ich den Admin-Generator verwendet habe. Das Problem war wie folgt.

ich eine Liste von Projekten haben, wich sie in die Liste der ProfileSchemas verknüpfen, die die gleiche project_id haben, so brauchte ich eine Strecke wie:/backend/Projekt /: project_id/ListProfileSchema

konnte ich nicht finde einen Weg, dies mit dem Admin-Generator zu tun (die project_id in die Route zu bekommen), also habe ich alle Routen (etwa 12, die neuen, Edit-, Delete-, Batch-Aktionen, etc.) von Hand codiert und den generierten Code geändert vom Administrator-Generator, um die als Parameter übergebene project_id und den vom adming-Generator generierten Code als Leitfaden zu verwenden.

== == Fragen

1) Gibt es eine Möglichkeit einfacher, so etwas zu tun?

2) Jetzt muss ich die Bestätigung JavaScript auf der Löschaktion auf die Aktionen der Liste hinzuzufügen, die durch das Verfahren 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())); 
} 

Der obige Code erhalten nicht die Javascript erzeugt wird. Dieser Code unten erzeugt den Link gut und es funktioniert, aber ich kann nicht die Bestätigung für das Javascript erscheinen lassen.

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

Und die Bestätigungsdaten eingestellt wird, wie $ url mit $ this- ersetzen> getUrlForAction ('Löschen') funktioniert der Trick aber mit der falschen URL (die man durch den Admin-Generator erzeugt).

Übrigens habe ich viel gesucht, etwas ähnliches zu finden. Die einzige ähnliche Frage war:

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

Aber die answear half mir nicht (wie der Standardwert nicht dynamisch ist und erhalten kann, es nicht zu überschreiben)

Antwort

0

Ich habe vergessen, diese zu schließen Frage. i Nach einiger Zeit festgestellt, dass die Lösung war:

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'])); 

übergeben Sie den Namen für den Link als erstes Argument angezeigt wird, der Name der Route wie die 2.en Argumente und die benötigten Variablen im Array in dem 3. Parameter um die Route zu generieren. Schließlich übergeben Sie das Array, um den Bestätigungscode zu generieren. Meine Route ist

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

Sie sollten Ihre eigene Antwort dann akzeptieren –