【问题标题】:What is the best way to provide a NULL option for a belongsTo field in CakePHP 1.3?在 CakePHP 1.3 中为 belongsTo 字段提供 NULL 选项的最佳方式是什么?
【发布时间】:2010-11-04 17:34:16
【问题描述】:

我有一个名为“users”的表,每个用户可以属于一个组,在一个名为“categories”的表中进行描述。用法示例是“Alice 属于红色类别”和“Bob 属于蓝色类别”等。

我正在使用 CakePHP 的表单助手,并且在页面 http://localhost/users/edit/[user_id] 中,它制作了一个下拉框来选择类别(在模型中使用 JOIN 来获取类别名称)。

但我想添加一个选项来选择 NULL,因为并非所有用户都需要属于某个类别。将 NULL 条目添加到“category”表将不起作用,因为“users”表中的外键是“category_id”。我希望尚未选择类别为 NULL 的用户的“category_id”为 NULL,而不是在另一个表中恰好等于 NULL 的 1。

对不起,如果这有点漫无边际。希望有人可以关注它,让我知道 cakePHP 是否有办法做到这一点,或者我应该想出一种不同的方法。

【问题讨论】:

    标签: cakephp cakephp-1.3


    【解决方案1】:

    @stevelove 的答案是正确的,但我会使用以下函数:

    $this->Form->input('category_id', array('empty'=>true, 'options'=>$categories));
    

    这将在选择框中添加一个空选项。如果您想要一个描述性的名称,只需使用"

    $this->Form->input('category_id', array('empty'=>'Select category', 'options'=>$categories));
    

    【讨论】:

    • 我一直认为 Cake 强调“约定优于配置”很有趣,但它们提供了上百万种不同的方法来完成同样的事情。 :)
    • @stevelove 我猜你没有玩过 Zend 或者,在较小程度上,Symfony。谈论一百万种方式...
    • @steve“约定优于配置”与"There should be one-- and preferably only one --obvious way to do it."的概念不同
    【解决方案2】:

    所以您只是想在您的组选择下拉列表中添加“无”选项?您是否尝试过传入空选项属性?

    $this->Form->select('group', $options, null, array('empty' => 'None'));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-18
      • 2012-09-14
      • 2022-01-07
      • 1970-01-01
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多