Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP 3下拉列表值_Cakephp_Cakephp 3.0 - Fatal编程技术网

CakePHP 3下拉列表值

CakePHP 3下拉列表值,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我有一个下拉列表,只显示表行的id。 我喜欢在下拉列表中向用户显示该表中的多个值 我是否需要从控制器或类似的东西在变量中添加一个带有列名称的数组 编辑: 在函数add中,我有这个变量 $addresses = $this->Users->Addresses->find('list', ['limit' => 200]); 在视图中 echo $this->Form->input('address_id', ['options' => $addresse

我有一个下拉列表,只显示表行的id。 我喜欢在下拉列表中向用户显示该表中的多个值

我是否需要从控制器或类似的东西在变量中添加一个带有列名称的数组

编辑: 在函数add中,我有这个变量

$addresses = $this->Users->Addresses->find('list', ['limit' => 200]);
在视图中

echo $this->Form->input('address_id', ['options' => $addresses]);
我只想在下拉列表中显示address_id、city、street和zipcode的值

只需一个数组即可显示其值。它使用索引定义要显示的数组的值和值

您可以做的是从表中获取所需的列,并使用这两个列创建一个字符串,然后将其放入数组中

或者,您可以查看接受数组的类中的
displayField()
。这样做的缺点是使用
$table->find('list')你会得到一些类似于
sevlor的东西;1
这可能不是您想要的。

仅需要一个数组即可显示其值。它使用索引定义要显示的数组的值和值

您可以做的是从表中获取所需的列,并使用这两个列创建一个字符串,然后将其放入数组中

或者,您可以查看接受数组的类中的
displayField()
。这样做的缺点是使用
$table->find('list')你会得到一些类似于
sevlor的东西;1
这可能不是您想要的。

使用虚拟字段:

在地址实体文件中,您可以执行以下操作

function _getFullName()
{
    $ret = $this->city.' '.$this->street.' '.$this->zipcode;
    return $ret;
}
$addresses = $this->Users->Addresses->find(
    'list', 
    ['limit' => 200, 'valueField' => 'full_name']
);
然后在控制器中,您可以执行以下操作

function _getFullName()
{
    $ret = $this->city.' '.$this->street.' '.$this->zipcode;
    return $ret;
}
$addresses = $this->Users->Addresses->find(
    'list', 
    ['limit' => 200, 'valueField' => 'full_name']
);
使用虚拟字段:

在地址实体文件中,您可以执行以下操作

function _getFullName()
{
    $ret = $this->city.' '.$this->street.' '.$this->zipcode;
    return $ret;
}
$addresses = $this->Users->Addresses->find(
    'list', 
    ['limit' => 200, 'valueField' => 'full_name']
);
然后在控制器中,您可以执行以下操作

function _getFullName()
{
    $ret = $this->city.' '.$this->street.' '.$this->zipcode;
    return $ret;
}
$addresses = $this->Users->Addresses->find(
    'list', 
    ['limit' => 200, 'valueField' => 'full_name']
);

你能添加一些代码吗?并添加一些关于所需行为的解释?我添加了一些code@dnns如果使用模型名称的复数形式,则不需要告诉Cake选项数组是什么。i、 e.Cake将假定变量
$address
填充外键
$address\u id
的选项。所以您的输入代码看起来像
$this->Form->input('address_id')。如果使用的变量不是期望的变量(如果有意义的话),则只需传递
选项
值即可你能添加一些代码吗?并添加一些关于所需行为的解释?我添加了一些code@dnns如果使用模型名称的复数形式,则不需要告诉Cake选项数组是什么。i、 e.Cake将假定变量
$address
填充外键
$address\u id
的选项。所以您的输入代码看起来像
$this->Form->input('address_id')。如果使用的变量不是期望的变量(如果有意义的话),则只需传递
选项
值即可这比我建议的+1要好。忘了那些吧。很好,我认为这是一个干净的方法。这正是我想要的。是否也可以访问基础地址表并将其放入$ret中?@dnns我不完全确定您的要求,也许值得再问一个问题?这比我建议的+1要好。忘了那些吧。很好,我认为这是一个干净的方法。这正是我要找的。是否也可以访问基础地址表并将其放入$ret中?@dnns我不完全确定您要的是什么,也许值得再问一个问题?