瀏覽代碼

add generateObjectUrl function

Charley Maillot 13 年之前
父節點
當前提交
01ff5aa51e

+ 18 - 1
Admin/Admin.php

@@ -831,11 +831,28 @@ abstract class Admin implements AdminInterface, DomainObjectInterface
         return $this->routes->has($name);
     }
 
+
+    /**
+     * generate the object url with the given $name
+     *
+     * @param  string $name
+     * @param  $object
+     * @param array $parameters
+     * 
+     * @return return a complete url
+     */
+    public function generateObjectUrl($name, $object, array $parameters = array())
+    {
+        $parameters['id'] = $this->getNormalizedIdentifier($object);
+
+        return $this->generateUrl($name, $parameters);
+    }
+
     /**
      * generate the url with the given $name
      *
      * @throws RuntimeException
-     * @param  $name
+     * @param string $name
      * @param array $parameters
      *
      * @return return a complete url

+ 1 - 3
Controller/CRUDController.php

@@ -257,9 +257,7 @@ class CRUDController extends Controller
         }
 
         if (!$url) {
-            $url = $this->admin->generateUrl('edit', array(
-                'id' => $this->admin->getNormalizedIdentifier($object),
-            ));
+            $url = $this->admin->generateObjectUrl('edit', $object);
         }
 
         return new RedirectResponse($url);

+ 1 - 1
Resources/views/CRUD/base_edit.html.twig

@@ -15,7 +15,7 @@ file that was distributed with this source code.
     <div class="sonata-actions">
         <ul>
             {% if admin.hasroute('show') and admin.id(object) and admin.isGranted('VIEW') and admin.show|length > 0 %}
-                <li class="sonata-action-element"><a href="{{ admin.generateUrl('show', {'id' : admin.id(object)}) }}">{% trans from 'SonataAdminBundle' %}link_action_show{% endtrans %}</a></li>
+                <li class="sonata-action-element"><a href="{{ admin.generateObjectUrl('show', object) }}">{% trans from 'SonataAdminBundle' %}link_action_show{% endtrans %}</a></li>
             {% endif %}
             {% if admin.hasroute('create') and admin.isGranted('CREATE')%}
                 <li class="sonata-action-element"><a href="{{ admin.generateUrl('create') }}">{% trans from 'SonataAdminBundle' %}link_action_create{% endtrans %}</a></li>

+ 2 - 2
Resources/views/CRUD/base_list_field.html.twig

@@ -13,9 +13,9 @@ file that was distributed with this source code.
     {% if field_description.options.identifier is defined and admin.isGranted(['EDIT', 'SHOW']) %}
 
         {% if admin.hasroute('edit') and admin.isGranted('EDIT') %}
-            <a href="{{ admin.generateUrl('edit', {'id': admin.id(object)}) }}">
+            <a href="{{ admin.generateObjectUrl('edit', object) }}">
         {% elseif admin.hasroute('show') %}
-            <a href="{{ admin.generateUrl('show', {'id': admin.id(object)}) }}">
+            <a href="{{ admin.generateObjectUrl('show', object) }}">
         {% endif %}
 
             {% block field %}{{ value }}{% endblock %}

+ 1 - 1
Resources/views/CRUD/base_show.html.twig

@@ -15,7 +15,7 @@ file that was distributed with this source code.
     <div class="sonata-actions">
         <ul>
             {% if admin.hasRoute('edit') and admin.isGranted('EDIT')%}
-                <li class="sonata-action-element"><a href="{{ admin.generateUrl('edit', {'id' : admin.id(object)}) }}">{% trans from 'SonataAdminBundle' %}link_action_edit{% endtrans %}</a></li>
+                <li class="sonata-action-element"><a href="{{ admin.generateObjectUrl('edit', object) }}">{% trans from 'SonataAdminBundle' %}link_action_edit{% endtrans %}</a></li>
             {% endif %}
 
             {% if admin.hasRoute('create') and admin.isGranted('CREATE')%}

+ 1 - 1
Resources/views/CRUD/list__action_delete.html.twig

@@ -1,5 +1,5 @@
 {% if admin.isGranted('DELETE') and admin.hasRoute('delete') %}
-    <a href="{{ admin.generateUrl('delete', {'id': admin.id(object)}) }}" class="delete_link" title="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}">
+    <a href="{{ admin.generateObjectUrl('delete', object) }}" class="delete_link" title="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}">
         <img src="{{ asset('bundles/sonataadmin/famfamfam/delete.png') }}" alt="{% trans from 'SonataAdminBundle' %}action_delete{% endtrans %}" />
     </a>
 {% endif %}

+ 1 - 1
Resources/views/CRUD/list__action_edit.html.twig

@@ -1,5 +1,5 @@
 {% if admin.isGranted('EDIT') and admin.hasRoute('edit') %}
-    <a href="{{ admin.generateUrl('edit', {'id': admin.id(object)}) }}" class="edit_link" title="{% trans from 'SonataAdminBundle' %}action_edit{% endtrans %}">
+    <a href="{{ admin.generateObjectUrl('edit', object) }}" class="edit_link" title="{% trans from 'SonataAdminBundle' %}action_edit{% endtrans %}">
         <img src="{{ asset('bundles/sonataadmin/famfamfam/page_white_edit.png') }}" alt="{% trans from 'SonataAdminBundle' %}action_edit{% endtrans %}" />
     </a>
 {% endif %}

+ 1 - 1
Resources/views/CRUD/list__action_view.html.twig

@@ -1,5 +1,5 @@
 {% if admin.hasRoute('show') %}
-    <a href="{{ admin.generateUrl('show', {'id': admin.id(object)}) }}" class="view_link" title="{% trans from 'SonataAdminBundle' %}action_view{% endtrans %}">
+    <a href="{{ admin.generateObjectUrl('show', object) }}" class="view_link" title="{% trans from 'SonataAdminBundle' %}action_view{% endtrans %}">
         <img src="{{ asset('bundles/sonataadmin/famfamfam/magnifier.png') }}" alt="{% trans from 'SonataAdminBundle' %}action_view{% endtrans %}" />
     </a>
 {% endif %}

+ 1 - 1
Resources/views/CRUD/list_orm_many_to_many.html.twig

@@ -14,7 +14,7 @@ file that was distributed with this source code.
 {% block field%}
     {% if field_description.hasassociationadmin and field_description.associationadmin.hasRoute('edit') and field_description.associationadmin.isGranted('edit')%}
         {% for element in value%}
-            <a href="{{ field_description.associationadmin.generateUrl('edit', {'id': field_description.associationadmin.id(element)}) }}">{{ element|render_relation_element(field_description) }}</a>
+            <a href="{{ field_description.associationadmin.generateObjectUrl('edit', element) }}">{{ element|render_relation_element(field_description) }}</a>
         {% endfor %}
     {% else %}
         {% for element in value%}

+ 1 - 1
Resources/views/CRUD/list_orm_many_to_one.html.twig

@@ -14,7 +14,7 @@ file that was distributed with this source code.
 {% block field %}
     {% if value %}
         {% if field_description.hasAssociationAdmin and field_description.associationadmin.hasRoute('edit') and field_description.associationadmin.isGranted('EDIT') %}
-            <a href="{{ field_description.associationadmin.generateUrl('edit', {'id': field_description.associationadmin.id(value)}) }}">{{ value|render_relation_element(field_description) }}</a>
+            <a href="{{ field_description.associationadmin.generateObjectUrl('edit', value) }}">{{ value|render_relation_element(field_description) }}</a>
         {% else %}
             {{ value|render_relation_element(field_description) }}
         {% endif %}

+ 1 - 1
Resources/views/CRUD/list_orm_one_to_many.html.twig

@@ -14,7 +14,7 @@ file that was distributed with this source code.
 {% block field%}
     {% if field_description.hasassociationadmin and field_description.associationadmin.isGranted('EDIT') and field_description.associationadmin.hasRoute('edit') %}
         {% for element in value%}
-            <a href="{{ field_description.associationadmin.generateUrl('edit', {'id': field_description.associationadmin.id(element)}) }}">{{ element|render_relation_element(field_description) }}</a>
+            <a href="{{ field_description.associationadmin.generateObjectUrl('edit', element) }}">{{ element|render_relation_element(field_description) }}</a>
         {% endfor %}
     {% else %}
         {% for element in value%}

+ 1 - 1
Resources/views/CRUD/list_orm_one_to_one.html.twig

@@ -14,7 +14,7 @@ file that was distributed with this source code.
 {% block field %}
     {% if field_description.hasAssociationAdmin and field_description.associationadmin.id(value) %}
         {% if field_description.hasAssociationAdmin and field_description.associationadmin.isGranted('EDIT') and field_description.associationadmin.hasRoute('edit') %}
-            <a href="{{ field_description.associationadmin.generateUrl('edit', {'id': field_description.associationadmin.id(value)}) }}">{{ value|render_relation_element(field_description) }}</a>
+            <a href="{{ field_description.associationadmin.generateObjectUrl('edit', value) }}">{{ value|render_relation_element(field_description) }}</a>
         {% else %}
             {{ value|render_relation_element(field_description) }}
         {% endif %}