array_push 的问题
Issues with array_push
我有一个控制器,我想在其中设置一个日志,特定用户可以在其中查看任务的历史记录(看起来像( {user} 将任务设置为 {mission status},他是否接受任务与否。我想将这个 "status" 设置在一个数组中,这样当我让它出现时,它看起来就像一个事件列表。
到目前为止,它是这样的:
/**
* @Route("/accept/{id}", name="mission_accept")
* @Method("POST")
*/
public function acceptAction(Request $request, Mission $mission){
$form = $this->acceptMission($mission);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$user = $this->container->get('security.token_storage')->getToken()->getUser();
$em = $this->getDoctrine()->getManager();
$mission->setStatut("filled");
$mission->setAppliedSchool($user->getEcole());
$history = $mission->getHistory();
$mission->setHistorique(array_push($history, 'Mission '.$mission->getStatut().' by'. $mission->getAppliedSchool()));
$em->persist($mission);
$em->flush();
}
return $this->redirectToRoute('mission_index');
}
"getAppliedSchool" 获取已通过接受或拒绝任务以其他方式更改任务状态的用户。
我的问题是,当我尝试保存此状态时,除数组外一切正常,我从数据库中的默认值 (a:0:{}
) 变为如下所示:a:2
,我不知道为什么。我想我做错了什么,但我不知道哪里做错了。
有什么想法吗?
问题是 array_push
不是 return 数组。所以只需稍微更改您的代码:
array_push($history, 'Mission '.$mission->getStatut().' by'. $mission->getAppliedSchool());
$mission->setHistorique($history);
我有一个控制器,我想在其中设置一个日志,特定用户可以在其中查看任务的历史记录(看起来像( {user} 将任务设置为 {mission status},他是否接受任务与否。我想将这个 "status" 设置在一个数组中,这样当我让它出现时,它看起来就像一个事件列表。
到目前为止,它是这样的:
/**
* @Route("/accept/{id}", name="mission_accept")
* @Method("POST")
*/
public function acceptAction(Request $request, Mission $mission){
$form = $this->acceptMission($mission);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$user = $this->container->get('security.token_storage')->getToken()->getUser();
$em = $this->getDoctrine()->getManager();
$mission->setStatut("filled");
$mission->setAppliedSchool($user->getEcole());
$history = $mission->getHistory();
$mission->setHistorique(array_push($history, 'Mission '.$mission->getStatut().' by'. $mission->getAppliedSchool()));
$em->persist($mission);
$em->flush();
}
return $this->redirectToRoute('mission_index');
}
"getAppliedSchool" 获取已通过接受或拒绝任务以其他方式更改任务状态的用户。
我的问题是,当我尝试保存此状态时,除数组外一切正常,我从数据库中的默认值 (a:0:{}
) 变为如下所示:a:2
,我不知道为什么。我想我做错了什么,但我不知道哪里做错了。
有什么想法吗?
问题是 array_push
不是 return 数组。所以只需稍微更改您的代码:
array_push($history, 'Mission '.$mission->getStatut().' by'. $mission->getAppliedSchool());
$mission->setHistorique($history);