我正在尝试使用doctrine在我的数据库中插入json数据,因为某些原因我无法在数据库中插入数据
这是我的代码
namespace ScheduleBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
//Json Response
use Symfony\Component\HttpFoundation\JsonResponse;
//Class Controller
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
//Request
use Symfony\Component\HttpFoundation\Request;
use ScheduleBundle\Entity\schedule;
class ApiController extends Controller
{
/**
* @Route("/api/{week}")
*/
public function roosterApi(Request $request, $week)
{
//
//
// print_r($rooster);
//
// echo 'Rooster: ' . $dataRooster->getSchedule();
$rooster = array('week' => '1');
$roosterConnection = $this->get('doctrine')->getRepository('ScheduleBundle:schedule', 'schedule');
$dataRooster = $roosterConnection->findOneByStudentId('36838');
$dataRooster->setSchedule($rooster);
$out = array('1' => $week);
return new JsonResponse($out, 200, array('Content-Type' => 'application/json'));
}
}
这是我的实体
namespace ScheduleBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* schedule
*
* @ORM\Table(name="schedule")
* @ORM\Entity(repositoryClass="ScheduleBundle\Repository\scheduleRepository")
*/
class schedule
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="student_id", type="string", length=20)
*/
private $studentId;
/**
* @var array
*
* @ORM\Column(name="schedule", type="json_array")
*/
private $schedule;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set studentId
*
* @param string $studentId
*
* @return schedule
*/
public function setStudentId($studentId)
{
$this->studentId = $studentId;
return $this;
}
/**
* Get studentId
*
* @return string
*/
public function getStudentId()
{
return $this->studentId;
}
/**
* Set schedule
*
* @param array $schedule
*
* @return schedule
*/
public function setSchedule($schedule)
{
$this->schedule = $schedule;
return $this;
}
/**
* Get schedule
*
* @return array
*/
public function getSchedule()
{
return $this->schedule;
}
}
我正在使用doctrine和symfony 3.0
编辑:添加了我文件中的所有代码。我也没有错。 添加了实体代码
答案 0 :(得分:5)
您需要告诉学说坚持(并刷新)您的更改
$entityManager = $this->get('doctrine')->getEntityManager();
$roosterConnection = $this->get('doctrine')->getRepository('ScheduleBundle:schedule', 'schedule');
$dataRooster = $roosterConnection->findOneByStudentId('36838');
$dataRooster->setSchedule($rooster);
$entityManager->persist($dataRooster);
$entityManager->flush();