【问题标题】:symfony/propel: problem trying to add a new object action in a backend modulesymfony/propel:尝试在后端模块中添加新对象操作时出现问题
【发布时间】:2010-12-22 22:58:30
【问题描述】:

我已经创建了这个模型:

propel:
  shop_orders:
    orders_id: { phpName: Id, type: INTEGER, size: '11', primaryKey: true, autoIncrement: true, required: true }
    email: { type: VARCHAR, size: '45', required: true }

然后我生成了一个管理模块,并将其添加到 generator.yml 中:

config:
  actions: ~
  fields:  ~
  list:
    object_actions:
      foo: {}

当我点击 foo 动作时,它会生成这个 url:

backend_dev.php/sp1/ListFoo/action?id=1

我收到这条消息:

操作“sp1/action”不存在。

sf 1.4/推进

有什么想法吗?

哈维尔

【问题讨论】:

    标签: symfony1


    【解决方案1】:

    我在使用 propel 1.5 时也遇到过同样的问题。尝试通过添加路由规则等来修复它。但似乎工作的只是在 generator.yml 中的操作名称周围添加单引号:

    列表: 对象动作: 富: 模块: foo 行动:'行动'

    【讨论】:

      【解决方案2】:

      在我回答之前,我自己有几个问题。你想用这个做什么:

      config:
        actions: ~
        fields:  ~
        list:
          object_actions:
            foo: {}
      

      我认为应该是这样的:

      config:
        actions: ~
        fields:  ~
        list:
          object_actions:
            foo:
              module: foo
              action: action_name
      

      现在,回到您的问题,生成的链接来自位于生成器主题中的部分链接。您可以在以下位置找到它: generator > sfPropelGenerator > theme_name > template > templates > _list_actions.php

      在那里你可以找到如下代码:

      [....]
      <li class="sf_admin_action_<?php echo $params['class_suffix'] ?>">
        <?php echo $this->addCredentialCondition($this->getLinkToAction($name, $params, false), $params)."\n" ?>
      </li>
      [....]
      

      我的猜测是,当您定义新的 object_action 时,getLinkToAction 在 $params 处收到了一些默认值。

      尝试修改您的 generator.yml,清除缓存并再次检查。

      祝你好运!

      【讨论】:

        【解决方案3】:

        Peace 我已经通过下载稳定版本的 symfony 并重新生成一个新的后端解决了这个错误,现在你可以“复制/粘贴”来通过旧后端升级你的后端 祝你好运

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-11-08
          • 1970-01-01
          • 2014-04-11
          • 2018-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多