Json_array在教义symfony

时间:2016-03-22 14:17:36

标签: php doctrine-orm doctrine symfony

我正在尝试使用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

编辑:添加了我文件中的所有代码。我也没有错。       添加了实体代码

1 个答案:

答案 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();