Php Symfony 1.4(从1.0迁移):外键和管理模块的config.yml

Php Symfony 1.4(从1.0迁移):外键和管理模块的config.yml,php,symfony1,symfony-1.4,Php,Symfony1,Symfony 1.4,我正在将代码从Symfony1.0迁移到Symfony1.4。 使用推进创建了名为:mymodel的管理模块 该模型的数据库如下所示: table: mymodel_table. column: fkLabelId column: fkRightsOwnerId NOTE: both are foreing keys. 它们是以这种方式连接的,同样是在物理数据库中: fkLabelId -------> REFER `DB/label`(`id`); fk

我正在将代码从Symfony1.0迁移到Symfony1.4。 使用推进创建了名为:mymodel的管理模块

该模型的数据库如下所示:

table: mymodel_table.
  column: fkLabelId
  column: fkRightsOwnerId
NOTE: both are foreing keys.
它们是以这种方式连接的,同样是在物理数据库中:

  fkLabelId        -------> REFER `DB/label`(`id`);

  fkRightsOwnerId  -------> REFER `DB/ownersright`(`id`);
现在,我在我的项目中创建了管理模块-cms,代码如下:

php symfony propel:generate-admin cms --module=myModel MyModelTable
在我的页面中,我可以看到表mymodel\u表的信息,这是:都id。但我希望看到其他两个表中引用的信息

这是SYMFONY 1.0版本的config.yml

generator:
class:              sfPropelAdminGenerator
param:
  model_class:      MyModel
  theme:            default
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:
    filters:              [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter]
    peer_method:          doSelectJoinAll
    display:              [=_label_list, =_rightsowner_list]
    actions:
    actions:
      _create:        ~
    object_actions:
      _edit:          ~
      _delete:        ~
  edit:
    display: [=_label_edit, =_rightsowner_edit]
    actions:
      _list:          ~
      _save_and_list: ~
      _save:          ~
      _delete:        ~
generator:
  class: sfPropelGenerator
  param:
    model_class:           MyModel
    theme:                 admin15
    non_verbose_templates: true
    with_show:             false
    singular:              MyModel
    plural:                MyModel
    route_prefix:          My_model
    with_propel_route:     1
    actions_base_class:    sfActions

config:
  actions: ~
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:
    filters:              [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter] 
  //  peer_method:          doSelectJoinAll                         ("commented")
  //  display:              [=_label_list, =_rightsowner_list]      ("commented")
  filter:  ~
  form:    ~
  edit:    ~
  new:     ~
这是SYMFONY 1.4版本的config.yml

generator:
class:              sfPropelAdminGenerator
param:
  model_class:      MyModel
  theme:            default
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:
    filters:              [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter]
    peer_method:          doSelectJoinAll
    display:              [=_label_list, =_rightsowner_list]
    actions:
    actions:
      _create:        ~
    object_actions:
      _edit:          ~
      _delete:        ~
  edit:
    display: [=_label_edit, =_rightsowner_edit]
    actions:
      _list:          ~
      _save_and_list: ~
      _save:          ~
      _delete:        ~
generator:
  class: sfPropelGenerator
  param:
    model_class:           MyModel
    theme:                 admin15
    non_verbose_templates: true
    with_show:             false
    singular:              MyModel
    plural:                MyModel
    route_prefix:          My_model
    with_propel_route:     1
    actions_base_class:    sfActions

config:
  actions: ~
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:
    filters:              [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter] 
  //  peer_method:          doSelectJoinAll                         ("commented")
  //  display:              [=_label_list, =_rightsowner_list]      ("commented")
  filter:  ~
  form:    ~
  edit:    ~
  new:     ~
mypage.com/dev.php/mymodel
中,我得到:

500 | Internal Server Error | InvalidArgumentException
Your generator configuration contains some errors for the "list" context. The following configuration cannot be parsed: array( 'filters' => array( 0 => 'fklabelid', 1 => '_label_filter', 2 => 'fkrightsownerid', 3 => '_rightsowner_filter', ),).
Symfony页面中,这是一个很好的例子!。尝试了许多1.0版本的排列。更改内容,在config.yml中添加foreign命令

我将感谢任何帮助

编辑

generator:
class:              sfPropelAdminGenerator
param:
  model_class:      MyModel
  theme:            default
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:
    filters:              [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter]
    peer_method:          doSelectJoinAll
    display:              [=_label_list, =_rightsowner_list]
    actions:
    actions:
      _create:        ~
    object_actions:
      _edit:          ~
      _delete:        ~
  edit:
    display: [=_label_edit, =_rightsowner_edit]
    actions:
      _list:          ~
      _save_and_list: ~
      _save:          ~
      _delete:        ~
generator:
  class: sfPropelGenerator
  param:
    model_class:           MyModel
    theme:                 admin15
    non_verbose_templates: true
    with_show:             false
    singular:              MyModel
    plural:                MyModel
    route_prefix:          My_model
    with_propel_route:     1
    actions_base_class:    sfActions

config:
  actions: ~
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:
    filters:              [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter] 
  //  peer_method:          doSelectJoinAll                         ("commented")
  //  display:              [=_label_list, =_rightsowner_list]      ("commented")
  filter:  ~
  form:    ~
  edit:    ~
  new:     ~
正如我被建议的那样,我正在做partials。我创建了一个\u Label\u list.php。将信息从外键重定向到destiny表。在文件中,我正在做类似的事情:

 $rights = RightsOwnerQuery::create()->findPk($MyModel->getFkRightsOwnerId());

 //Print the Info
 echo $rights->getPrice() . ' ('. $rights->getId() . ')';

symfony 1.0中的旧
列表>过滤器
已移动到symfony 1.4中的专用条目
过滤器

您现在必须在
列表
的同一级别上使用
过滤器

config:
  actions: ~
  fields:
    fk_label_id: {params: disabled=false}
    fk_rightsowner_id: {params: disabled=false}
  list:            
  //  peer_method:          doSelectJoinAll                         ("commented")
  //  display:              [=_label_list, =_rightsowner_list]      ("commented")
  filter:
    display: [fklabelid, _label_filter, fkrightsownerid, _rightsowner_filter]
  form:    ~
  edit:    ~
  new:     ~
顺便说一句,要小心,以“_”开头的字段是局部的。所以不要忘记创建partial(我想它们已经存在于symfony 1.0中)

编辑: 关于部分,您必须在管理模块的templates目录中创建它们:

modules
  |- rightsownerinlabel
    |- actions
    |- config
      |- generator.yml
    |- lib
    |- templates
      |- _label_filter.php
      |- _rightsowner_filter.php

我不经常对过滤器使用部分过滤,但深入研究缓存文件夹中生成的代码,看看如何检索FormFilter对象,以及如何使用

我在“peer_方法”中遇到错误:/。它表示
您的生成器配置包含“列表”上下文的一些错误。无法分析以下配置:数组('peer_method'=>'doSelectJoinAll',)
,但我没有看到任何错误。即使我将默认设置为
doSelect
,iot也会给出该错误。如果您删除了它?它用于在相关表上手动执行左联接。根据文档,默认值是
doSelect
:我得到
调用未定义的方法:get\u labelList
。我读了文件,提到了一些细节。然而,它并没有说是在哪里创造的。阅读如何使用div等的示例。你能分享一个编写partials的参考吗?!天哪!我还读到我必须在类中添加一个
\u toString()
方法,这样它就可以打印,而不是数字,而是数字引用的信息-fkey-。你用过类似的东西吗?我已经更新了关于部分的答案。
\u toString
必须在模型类中编写