提取Cakephp多维数组
我需要从一个id数组(提取Cakephp多维数组,cakephp,Cakephp,我需要从一个id数组($user_id=array();)中找到所有要保存到通知表中的记录,以告诉这些用户他们的帐户已激活 Array( [0] => Array ( [User] => Array ( [id] => 2 [name] => joe [age] => 13
$user_id=array();
)中找到所有要保存到通知表中的记录,以告诉这些用户他们的帐户已激活
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
在执行这些命令之后
$x = $this->User->find('all',array('conditions'=>array('User.id'=>$user_id)));
$find = Set::extract('/User', $x);
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
我得到这个结果:
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
我需要通过提取上面的数组来获得下面的数组
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
Array
{
[id] => 2
[name] => joe
[age] => 13
[class] => D
}
Array
{
[id] => 3
[name] => lambert
[age] => 14
[class] => E
}
如何使用CakePHP实现这一点?
那么,在我看来,如何基于上面提取的数组发送多个记录?
可以在视图内部创建foreach循环吗
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
echo $html->link(__('Send',true),array('controller'=>'users','action'=>'notifications',$user_id),array('class'=>'button'));
显然,将链接放入循环将导致两个具有不同id的链接($user\u id=2和$user\u id=3)。我不想那样。我想要一个链接,可以一次性提交这些ID。第一个问题的答案
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
$data_final =array();
foreach($findas $d)
{
$data_final[] =$d['User'];
}
那么你会成功的
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)
Array
(
[0] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
[1] => Array
(
[id] => 4
[name] => lamber
[age] => 23
[class] => E
)
)
第二个问题的答案
您使用url的方式不是一个好的做法。你应该发布记录1)是的,你可以在视图中循环。2) 难道一个表单不更有意义吗,那么你可以用一个按钮发布所有的ID。尽管如此,提取所有id(如
{n}.User.id
)并将其传递给link()
方法应该是可行的。创建一个类似于controller/action/id[]=1&id[]=2
afaik的url。还有一篇帖子更有意义。为了更清楚地了解我评论的后半部分,'id'=>link数组中的$arrOfExtractedIds
(link()方法的第二个参数。或者$ids=array('id'=>$arrOfExtractedIds'));和'?'=>$ids
要在视图中作为GET参数传递,我没有创建表单。表单是在控制器内部创建的(包括saveAll)。我设置('users\u details',$users\u details)以显示.ctp文件中的所有用户信息。(仅用于显示-名称、类等)。提交按钮是唯一可以运行提交的东西。在视图中没有$this->User->create
的情况下,可以实现这一点吗?简单地说,用户信息已经保存在控制器中,我只需要通过单击提交按钮向他们发送信息来通知他们帐户已准备就绪。我建议gest您使用bin.cakephp.org并粘贴您的控制器、模型和表单,因为我不明白您要做什么。foreach循环中有两个输入错误。两个输入错误是什么意思?foreach($$findas$d)
应该是foreach($find as$d)
Array(
[0] => Array
(
[User] => Array
(
[id] => 2
[name] => joe
[age] => 13
[class] => D
)
)
[1] => Array
(
[User] => Array
(
[id] => 3
[name] => lambert
[age] => 14
[class] => E
)
)
)