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']; ?>