Symfony 1.4 linkToDeleteMenu 确认不制作 JavaScript

Symfony 1.4 linkToDeleteMenu Confirm not making JavaScript

我必须创建一个名为 ProfileSchema 的实体,其中包含一些字段,其中一个是 Project_id。我需要制作一个列表、编辑、新建等,为此我使用了管理生成器。问题如下。

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

我找不到使用管理生成器执行此操作的方法(将 project_id 放入路由),所以我手动编码了所有路由(大约 12,新建,编辑,删除,批处理操作等),并更改所有由 admin 生成器生成的代码,以使用作为参数传递的 project_id 和由 admin 生成器生成的代码作为指南。

==问题==

  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。下面的代码很好地生成了 link 并且可以正常工作,但是我无法确认出现 JavaScript。

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

并设置确认数据,因为将 $url 替换为 $this->getUrlForAction('delete') 可以解决问题,但使用不正确的 URL(由管理员生成器)。

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

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

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

我忘了关闭这个问题。一段时间后,我发现解决方案是这样的:

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

您将 link 显示的名称作为第一个参数传递,将路由名称作为第二个参数传递,并将数组中所需的变量传递给第三个参数以生成路由。最后,您传递数组以生成确认码。我的路线是

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