array_push 的问题

问题描述 投票:0回答:1

我有一个控制器,我想在其中设置一个日志,特定用户可以在其中查看任务的历史记录(类似于( {user} 将任务设置为 {mission 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
,但我不这样做知道为什么。我觉得我做错了什么,但我不知道哪里做错了,怎么做的。

有什么想法吗?

php symfony array-push
1个回答
2
投票

问题是

array_push
不返回数组。所以只需稍微更改一下代码即可:

array_push($history, 'Mission '.$mission->getStatut().' by'. $mission->getAppliedSchool());
$mission->setHistorique($history);
© www.soinside.com 2019 - 2024. All rights reserved.