CakePHP选择框值不在Order By之后 //我的所有者模型 var$belongsTo=数组( “所有者”=>数组( 'className'=>'User', 'foreignKey'=>'owner', ), ); //我的售票员 //查找要生成的票证的所有者选择框 $Owner=$this->Ticket->Owner->find('list',数组( 'fields'=>数组('Owner.id','Owner.username') 'order'=>array('Owner.username'=>'asc') )); //将“所有”添加到0处的所有者数组(没有所有者ID为0) 阵列拼接($owners,0,0,“All”); //在我的视图中设置所有者变量。 $this->set(紧凑(“所有者”); //我的模板文件或视图 echo$this->Form->create('Ticket',数组( 'url'=>array\u merge(array('action'=>'find'),$this->params['pass']); echo$this->Form->input('title',array('div'=>false)); 回声“”; //构建按用户名排序的selectbox echo$this->Form->input('owner',array('div'=>false,'options'=>$owner,'id'=>EndUser')); 回声“”; echo$this->Form->submit('Search',true),array('div'=>false)); echo$this->Form->end();

CakePHP选择框值不在Order By之后 //我的所有者模型 var$belongsTo=数组( “所有者”=>数组( 'className'=>'User', 'foreignKey'=>'owner', ), ); //我的售票员 //查找要生成的票证的所有者选择框 $Owner=$this->Ticket->Owner->find('list',数组( 'fields'=>数组('Owner.id','Owner.username') 'order'=>array('Owner.username'=>'asc') )); //将“所有”添加到0处的所有者数组(没有所有者ID为0) 阵列拼接($owners,0,0,“All”); //在我的视图中设置所有者变量。 $this->set(紧凑(“所有者”); //我的模板文件或视图 echo$this->Form->create('Ticket',数组( 'url'=>array\u merge(array('action'=>'find'),$this->params['pass']); echo$this->Form->input('title',array('div'=>false)); 回声“”; //构建按用户名排序的selectbox echo$this->Form->input('owner',array('div'=>false,'options'=>$owner,'id'=>EndUser')); 回声“”; echo$this->Form->submit('Search',true),array('div'=>false)); echo$this->Form->end();,php,cakephp,Php,Cakephp,构建选择框时,选择框按用户名排序,就像我希望的那样,但它们的ID不会随用户名切换 如果在阵列拼接($owners,0,0,“All”)之前执行打印($owners)数组是正确的。当i打印($owners)在阵列拼接($owners,0,0,“All”)之后时数组不正确-但我不知道为什么。。。我假设array\u splice对数组重新编号。。。如何向数组中添加“Any”而不破坏我的关系?试试这个 //My Owner Model var $belongsTo = array( 'Owne

构建选择框时,选择框按用户名排序,就像我希望的那样,但它们的ID不会随用户名切换

如果在
阵列拼接($owners,0,0,“All”)之前执行
打印($owners)
数组是正确的。当i
打印($owners)
阵列拼接($owners,0,0,“All”)之后时数组不正确-但我不知道为什么。。。我假设
array\u splice
对数组重新编号。。。如何向数组中添加“Any”而不破坏我的关系?

试试这个

//My Owner Model
var $belongsTo = array(
    'Owner' => array(
        'className' => 'User',
        'foreignKey' => 'owner',
    ),
);

//My Tickets Controller

//Find the owners of the ticket to build select box
$owners = $this->Ticket->Owner->find('list', array(
         'fields' => array('Owner.id', 'Owner.username')
         'order' => array('Owner.username' => 'asc')
));

//Add "All" to the array of owners at 0 (no owner ids are 0)
array_splice($owners, 0, 0, "All");
//Set owner variable in my view.
$this->set(compact('owners'));

//My template file or view
echo $this->Form->create('Ticket', array(
    'url' => array_merge(array('action' => 'find'), $this->params['pass'])));
    echo $this->Form->input('title', array('div' => false));
    echo "<br /><br />";
            //Build the selectbox ordered by username
    echo $this->Form->input('owner', array('div' => false, 'options' => $owners, 'id' => 'EndUser'));
    echo "<br /><br />";
    echo $this->Form->submit(__('Search', true), array('div' => false));
    echo $this->Form->end();

最好使用表单帮助器输入法的
empty
选项。您可以传递一个密钥以与之配合,因此更改:

$owners = $this->Ticket->Owner->find('list', array(
         'conditions' => array('Owner.id NOT'=>'0')
         'fields' => array('Owner.id', 'Owner.username')
         'order' => array('Owner.username' => 'asc')
));
为此:

echo $this->Form->input('owner', array('div' => false, 'options' => $owners, 'id' => 'EndUser'));

我想出来了,但不能回答我自己的问题。显然,你可以添加数组——谁知道呢!(我相信你们中的大多数人都是!//将所有添加到数组顶部$allarray=array(0=>“all”);$owners=$allarray+$owners;太棒了-那更好了!谢谢!
echo $this->Form->input('owner', array(
    'div' => false,
    'options' => $owners,
    'empty' => array(0 => 'All'), // Add this line
    'id' => 'EndUser'
));