symfony / propel:尝试在后端模块中添加新对象操作时出现问题

时间:2010-12-22 22:58:30

标签: symfony1

我创建了这个模型:

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 /动作?ID = 1

我收到了这条消息:

  

操作“sp1 / action”不存在。

sf 1.4 / propel

有什么想法吗?

哈维尔

3 个答案:

答案 0 :(得分:1)

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

列表:     object_actions:       FOO:         模块:foo         行动:'行动'

答案 1 :(得分:0)

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

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,清除缓存并再次检查。

祝你好运!

答案 2 :(得分:0)

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