Symfony 1.4 linkToDeleteMenu确认没有制作javascript

时间:2016-07-12 17:32:17

标签: php symfony-1.4

==上下文==

我必须创建一个名为ProfileSchema的实体,其中包含一些字段,其中一个是Project_id。我需要创建一个List,Edit,New等,我使用了admin生成器。问题如下。

我有一个项目列表,它们链接到具有相同project_id的ProfileSchemas列表,所以我需要一个路径,如:/ backend / project /:project_id / ListProfileSchema

我找不到使用admin生成器(将project_id放入路径)的方法,所以我手动编码了所有路径(大约12个,新的,编辑,删除,批处理操作等) ,并更改管理生成器生成的所有代码,以使用作为参数传递的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);

设置确认数据,因为将$ url替换为$ this-> getUrlForAction('delete')可以使用不正确的url(由admin生成器生成的url)。

顺便说一句,我搜索了很多试图找到相似的东西。唯一类似的问题是:

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

但是answear并没有帮助我(因为默认值不是动态的,也无法覆盖它)

1 个答案:

答案 0 :(得分: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