Symfony1 在Symfony管理生成器中检索相关数据

Symfony1 在Symfony管理生成器中检索相关数据,symfony1,admin,generator,Symfony1,Admin,Generator,我的管理生成器有问题。页面表中有一列sf\u guard\u user\u id。表格的其余部分看起来像是行显示中的generator.yml的这一部分 list: title: Pages display: [=title, sfGuardUser, views, state, privacy, created_at, updated_at] sort: [created_at, desc] fields: sfGuardUser: { lab

我的管理生成器有问题。页面表中有一列
sf\u guard\u user\u id
。表格的其余部分看起来像是行显示中的
generator.yml
的这一部分

list:
  title: Pages
  display:      [=title, sfGuardUser, views, state, privacy, created_at, updated_at]
  sort:         [created_at, desc]
  fields:
    sfGuardUser: { label: Author }
    created_at:  { label: Published, date_format: dd.MM.y }
    updated_at:  { label: Updated, date_format: dd.MM.y }
  table_method: retrieveUserList
现在,
sf\u guard\u user\u id
已被替换,并显示用户名列表。别误会我的意思,那很好。但是如何从
sfGuarsUser
关系中获取其他变量呢?当我只添加salt或其他变量来显示时,我得到

Unknown record property / related component "salt" on "simplePage"

但是为什么呢?

显示用户的名称是因为
sfGuardUser
类的
\u toString()
返回用户名。我猜从
simplePage
sfGuardUser
的相关名称是
sfGuardUser

但是当您仅指定
salt
时,生成器将查找
simplePages
是否具有这样的属性。管理员生成器不知道您指的是
sfGuardUser
salt
字段(它应该怎么做?)


您可以使用显示该值。因此,您必须在字段前面指定一个下划线(
\u salt
),例如:

\u salt
的输出由文件
模块//templates/\u salt.php
确定

在该文件中,您可以通过模型类名称命名的变量访问当前对象(
$simple\u page
$simplePage

因此,您可以将以下代码放入
\u salt.php

<?php echo $simple_page->getGuardUser()->getSalt(); ?>


我不确定
getGuardUser()
方法,但我想您知道如何从页面模型访问关联的用户。

显示用户的名称,因为
sfGuardUser
类的
\u toString()
返回用户名。我猜从
simplePage
sfGuardUser
的相关名称是
sfGuardUser

但是当您仅指定
salt
时,生成器将查找
simplePages
是否具有这样的属性。管理员生成器不知道您指的是
sfGuardUser
salt
字段(它应该怎么做?)


您可以使用显示该值。因此,您必须在字段前面指定一个下划线(
\u salt
),例如:

\u salt
的输出由文件
模块//templates/\u salt.php
确定

在该文件中,您可以通过模型类名称命名的变量访问当前对象(
$simple\u page
$simplePage

因此,您可以将以下代码放入
\u salt.php

<?php echo $simple_page->getGuardUser()->getSalt(); ?>


我不确定
getGuardUser()
方法,但我想您知道如何从页面模型访问相关用户。

管理生成器无法使用默认配置深入研究相关对象属性

sfGuardUser字段正确显示的原因是,在“page”类中定义了一个
getSfGuardUser
方法,当它被告知这两个对象是相关的,并且管理生成器调用该函数以显示其列(技术上调用u toString()方法返回的结果“sfGuardUser”对象上的方法)

要获取对象的一个相关模型的属性,可以在页面对象中定义自定义getter:

public function getSfGuardUserSalt() {
  return $this['sfGuardUser']['salt'];
}
然后在generator.yml中引用:

display: [title, sfGuardUser, sfGuardUserSalt, ...]
或创建一个分部来处理自定义渲染:

模块/页面/模板/_sfGuardUser.php:

<?php echo $page['sfGuardUser']['name']; ?><br />
<?php echo $page['sfGuardUser']['salt']; ?>

管理生成器无法使用默认配置深入研究相关对象属性

sfGuardUser字段正确显示的原因是,在“page”类中定义了一个
getSfGuardUser
方法,当它被告知这两个对象是相关的,并且管理生成器调用该函数以显示其列(技术上调用u toString()方法返回的结果“sfGuardUser”对象上的方法)

要获取对象的一个相关模型的属性,可以在页面对象中定义自定义getter:

public function getSfGuardUserSalt() {
  return $this['sfGuardUser']['salt'];
}
然后在generator.yml中引用:

display: [title, sfGuardUser, sfGuardUserSalt, ...]
或创建一个分部来处理自定义渲染:

模块/页面/模板/_sfGuardUser.php:

<?php echo $page['sfGuardUser']['name']; ?><br />
<?php echo $page['sfGuardUser']['salt']; ?>