调用整数日期时间的成员函数格式()
我想通过POSTMAN通过REST API发布到数据库的条目。我正在使用symfony框架。调用整数日期时间的成员函数格式()
{
"error": {
"code": 500,
"message": "Internal Server Error",
"exception": [
{
"message": "Error: Call to a member function format() on integer",
"class": "Symfony\\Component\\Debug\\Exception\\FatalErrorException",
"trace": [
{
"namespace": "",
"short_class": "",
"class": "",
"type": "",
"function": "",
"file": "C:\\xampp\\htdocs\\joel\\proj3\\vendor\\doctrine\\dbal\\lib\\Doctrine\\DBAL\\Types\\DateTimeType.php",
"line": 53,
"args": []
}
]
}
]
}
}
这是代码:
<?php
namespace AcsUserBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations as Rest;
use FOS\RestBundle\Controller\FOSRestController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use FOS\RestBundle\View\View;
use AcsUserBundle\Entity\User;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
class UserController extends FOSRestController
{
/**
* @Rest\Post("/user/")
*/
public function postAction(Request $request)
{
$data = new User;
$personid = $request->get('personid');
$privilagevalueid = $request->get('privilagevalueid');
$username = $request->get('username');
$password = $request->get('password');
$createdate = strtotime($request->get('createdate'));
if(empty($personid) || empty($privilagevalueid) || empty($username)|| empty($password)|| empty($createdate))
{
return new View("NULL VALUES ARE NOT ALLOWED", Response::HTTP_NOT_ACCEPTABLE);
}
$data->setPersonid($personid);
$data->setPrivilagevalueid($privilagevalueid);
$data->setUsername($username);
$data->setPassword($password);
$data->setCreatedate($createdate);
$em = $this->getDoctrine()->getManager();
$em->persist($data);
$em->flush();
return new View("User Added Successfully", Response::HTTP_OK);
}
}
我猜你setCreatedate
二传手等待DateTime对象。
你可以改变你的$createdate
这样的变量;
$createdate = new \DateTime($request->get('createdate'));
我不建议你手动从数据请求中获取数据并创建实体。为此,您可以使用表格,你也将有验证的奖金:)
public function postTeamAction(Request $request)
{
$postData = json_decode($request->getContent(), true);
$newTeam = new Team();
$form = $this->createForm(TeamType::class, $newTeam);
$form->submit($postData);
if ($form->isValid()) {
$this
->getDoctrine()->getManager()
->persist($newTeam)
;
$this
->->getDoctrine()->getManager()
->flush()
;
}
你可以定义每个字段应该是什么样的形式。
男子..即时通讯在编程的开始阶段..不知道如何执行此代码... :) ... heheh – jcoder
阅读这篇文章有关形式:https:/ /symfony.com/doc/current/forms.html 您不需要在树枝中创建表单视图,只需创建将处理数据验证的表单类,并将根据接收的数据自动创建实体。 ;) –
如果表单有效,则需要坚持已存满'$ newTeam'对象。 –
除非你的日期格式像Y-m-d,否则你会得到一个错误的解决方案。
$createdate = new \DateTime($request->get('createdate'));
你应该知道你的日期格式,你可以使用下面的选项。
$createDate = $request->get('createdate');
$createDateObj = \DateTime::createFromFormat('d/m/Y', $createDate);
$createDateObj = \DateTime::createFromFormat('d.m.Y', $createDate);
$createDateObj = \DateTime::createFromFormat('m/d/Y', $createDate);
男人.....你是这样的生活救星...数据库正在更新。 Thanxx这么多bruh .....:D – jcoder