【问题标题】:Dropdown list from different table CakePHP来自不同表 CakePHP 的下拉列表
【发布时间】:2015-08-04 19:16:43
【问题描述】:

我正在制作一个允许用户编辑特定订单的表单。 我希望能够制作一个已存储在不同表中的销售代理的下拉列表。

外键是 UserID(用户表的别名是 SalesAgent)。

在我看来,edit_sales_agent 操作是这样的: 在我的控制器中,我有这个:

echo $this->Form->create("Order");
echo $this->Form->input("UserID");

我认为这样做时应该会自动创建一个下拉列表,但会创建一个文本区域。

有人知道该怎么做吗?

谢谢!

【问题讨论】:

标签: sql-server cakephp cakephp-2.0


【解决方案1】:

使用 CakePHP 命名约定,外键应该是 user_id 而不是 UserID。如果您更正此问题,然后使用 find('list') 将控制器中的 $users 变量设置为索引数组,表单助手应该会自动生成一个下拉列表。

因此,在您的控制器中,您需要执行以下操作:-

$users = $this->Order->User->find('list');
$this->set(compact('users'));

然后你的表单输入:-

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

如果您无法重命名外键以符合 Cake 标准,那么您需要告诉表单助手使用 the $users array for the options:-

echo $this->Form->select('UserId', $users);

使用 CakePHP 的命名约定将使您的生活更轻松。使用您自己的约定将导致您需要不断地覆盖框架的工作原理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-25
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多