user1020069
user1020069

Reputation: 1570

Symfony linking to an admin Table record edit page

kind of finding it difficult to wrap my head around this. For those who have used the Symfony admin generator extensively, for each module based of a backend module, there is an edit page for all the records. Typically this can be accessed like this:

module/primarykey/edit.  (assume questions/1/edit)

which is strange because typically the primary key would be passed in as a URI parameter like:

questions/edit/1. Anyways, that maybe irrelevant. What is important is how do I manage to generate a link_to for the above URI. I am linking the editSuccess page through an external page which does not belong to the UI. The syntax I use is

link_to('Edit','questions/'.$primary_key.'/edit') // (where $primary_key = 1 as in this case)

However that auto modifies itself to :

/backend_dev.php/questions/1/action note the action instead of edit

No such action exists and it returns a 404 error stating that questions/action does not exist

To summarize, How do you link to an admin page that renders specifically for a record?

Upvotes: 1

Views: 162

Answers (1)

Maerlyn
Maerlyn

Reputation: 34107

The url_for (and thus the link_to) helpers deal with internal urls, not external ones. The syntax is module/action?parameters. In your case this would be question/edit?id=$primarykey (assuming the action looks for the id parameter).

If you give a name to your route, that makes generating the link faster (hashtable lookup vs. linear search):

echo url_for("@question_edit?id=$primary_key");

If you set up your route as an sfDoctrineRoute, it gets even simpler:

echo url_for("question_edit", $question);

note how you need not pass the id, but the question object - the route class will fetch all neccessary parameters.

Upvotes: 1

Related Questions