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 生成器生成的代码作为指南。
==问题==
有没有更简单的方法来做这样的事情?
现在我需要在列表的操作上添加删除操作的确认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
我必须创建一个名为 ProfileSchema 的实体,其中包含一些字段,其中一个是 Project_id。我需要制作一个列表、编辑、新建等,为此我使用了管理生成器。问题如下。
我有一个项目列表,它们 link 到具有相同 project_id 的 ProfileSchemas 列表,所以我需要一个像这样的路径:/backend/project/:project_id/ListProfileSchema
我找不到使用管理生成器执行此操作的方法(将 project_id 放入路由),所以我手动编码了所有路由(大约 12,新建,编辑,删除,批处理操作等),并更改所有由 admin 生成器生成的代码,以使用作为参数传递的 project_id 和由 admin 生成器生成的代码作为指南。
==问题==
有没有更简单的方法来做这样的事情?
现在我需要在列表的操作上添加删除操作的确认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