2016-07-12 36 views
0

==上下文==Symfony 1.4 linkToDeleteMenu确认没有javascript

我不得不使用一些名为ProfileSchema的实体,其中一个是Project_id。我需要创建一个List,Edit,New等,为此我使用了管理生成器。问题如下。

我有一个项目清单,他们至极链接到具有相同的PROJECT_ID的ProfileSchemas的名单,所以我需要像一个路线:/后端/项目/:PROJECT_ID/ListProfileSchema

我做不到找到一种方法来做到这一点与管理生成器(获取project_id到路线),所以我手动编码所有的路线(大约12,新,编辑,删除,批量操作等),并更改所有生成的代码由admin生成器使用作为参数传递的project_id和由adming生成器生成的代码作为指导。

==问题==

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

和确认数据设置,与这个 - $> 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'])); 

传入的链接作为第一个参数,路线名称作为第二个参数显示的名称,并在第三个参数数组中所需的变量生成路线。最后,你传递数组来生成确认码。我的路线是

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

你应该接受你自己的答案,然后 –