【问题标题】:Accessing releated field访问相关字段
【发布时间】:2014-06-20 19:34:55
【问题描述】:

在 FileMaker 中,我有(a.o.)两个相关表,其中表“studentpaper”的Betreuer_id 指的是表“Betreuer”的id

借助 FileMaker 的 PHP API,我想访问“studentpaper”中的记录,包括相关字段。但是,后者带来了问题。考虑以下 PHP 代码:

 $findCommand =& $fm->newFindAllCommand('studentpaper');
 $result = $findCommand->execute();
 $records = $result->getRecords();
 $record = $records[0];
 echo $record->getField('Titel'); // okay
 echo $record->getField('Betreuer_id'); // okay
 echo $record->getField('Betreuer::Name'); 
 // ERROR: get empty string, even related record has a non-empty field

我期望“Betreuer::Name”得到正确的相关结果,通常在 FileMaker 中(以及我在 studentpaper 的布局中得到)。但是,我只得到一个空字符串。 我究竟做错了什么? FileMaker 的 PHP-API 中的关系是否与“通常”的 FileMaker 方法不同?

【问题讨论】:

  • 数据库通常不会尝试读懂您的想法并意识到您也需要相关的表信息。你告诉它从 studentpaper 中获取数据,然后你从 studentpaper 中获取信息。 db 不能告诉您也需要来自 betreuer 的信息,这不是 db 的错。
  • 我喜欢你在 tu.chemnitz 的快速 debian 镜像(谢谢!)但是,嘿!,这个问题没有描述到底是什么问题或你得到了哪个错误(消息)。对于 4k 代表,您应该知道 ;) 对于大多数读者来说,德语表名也可能难以理解。
  • 您可能想知道分配'new'的返回值 在PHP 5 中已被弃用。这是因为所有对象变量都是引用。因此在这种情况下应该省略& 运算符:$a =& new Class().. 但是,这不会解决您的问题,只是一个提示。
  • @hek2mgl:对不起,我已经把它隐藏在代码中了。我将编辑问题。
  • @MarcB:我不是关于“读心术”。 “::”在 FileMaker 中构成适当的关系,例如在 FileMaker 脚本或“布局”设计中。

标签: php filemaker


【解决方案1】:

如果有人感兴趣,我自己找到了解决方案。

问题在于该字段没有(在布局中)定义为普通文本输入,而是作为由值列表限制的选择字段。

因此,不需要通过通常的getField 函数而是通过与值列表相关的函数之一来访问该值。就我而言,getValueListTwoFields 完成了这项工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多