我创建了这个模型:
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
有什么想法吗?
哈维尔
答案 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)