【问题标题】:CakePHP How do I display all table field namesCakePHP 如何显示所有表格字段名称
【发布时间】:2012-04-03 21:40:44
【问题描述】:

CakePHP 新手,所以要温柔...

我正在尝试遍历表以显示所有只读字段(标签和值)。 在我的编辑功能中,我得到了表格

$this->set('invoice', $this->Invoice->read(null, $id));

在我看来,我想遍历整个表架构并将字段名称和值作为标签输出,例如 fieldName: value

Invoice Number: SVC00158
Invoice Date: 03/03/12

此表中有 37 个字段。我宁愿不必为每个人手动编码。我知道要像这样检索输入字段

echo $this->Form->input('purchaseOrderNumber');

但我似乎找不到 input() 方法的“只读”属性。希望这是有道理的。

感谢您的宝贵时间。

【问题讨论】:

  • 如果输入不应该被编辑,为什么要显示输入(只读)?你可以只打印出 dd 列表等中的值,你呢?

标签: cakephp


【解决方案1】:

您可以遍历架构并像这样输出它:

// assumes $result contains model data
$schema = $this->Model->schema();
foreach ($schema as $field => $attrs) {
  echo $result['Model'][$field];
}

【讨论】:

  • 这是我找到的解决方案。花了我一段时间来刷新 php 技能。 foreach ($invoice as $tableName) { foreach ($tableName as $fieldName => $fieldValue) { echo $fieldName; ?>  
【解决方案2】:

只写:

<?=$this->Form->inputs();?>

【讨论】:

  • 不错,但如何排除特定字段?
【解决方案3】:

如果您是初学者,我建议您研究 Cake Bake(它会从控制台“烘烤”您的所有文件)。 我的意思是基于您当前数据库架构的视图、控制器和模型,以便为您服务,甚至对其应用一些样式。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2016-06-07
    • 1970-01-01
    相关资源
    最近更新 更多