У меня проблема с ORM \ PrePersist, следующая моя сущность Employee и EmployeeController:
<?php
namespace Nlc\InformationBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* Employee
* @ORM\Entity()
* @ORM\HasLifecycleCallbacks()
*/
class Employee
{
...
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function preUpload()
{
dump(1);die;
}
...
}
<?php
namespace Nlc\InformationBundle\Controller;
use Nlc\InformationBundle\Entity\Employee;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
/**
* Employee controller.
*
* @Route("nlc_employee")
*/
class EmployeeController extends Controller
{
/**
* Creates a new employee entity.
*
* @Route("/new", name = "nlc_employee_new")
* @Method({"GET", "POST"})
*/
public function newAction(Request $request)
{
$employee = new Employee();
$form = $this->createForm('Nlc\InformationBundle\Form\EmployeeType', $employee);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($employee);
$em->flush();
return $this->redirectToRoute('nlc_employee_show', array('id' => $employee->getId()));
}
return $this->render('employee/new.html.twig', array(
'employee' => $employee,
'form' => $form->createView(),
));
}
и получил это сообщение:
Возникла исключительная ситуация при выполнении команды INSERT INTO сотрудника (имя, возраст, пол, образование, фото, jl, created_at, updated_at, category_id) VALUES (?,?,?,?,?,?,?,?,?) С params ["\ u9093 \ u5b66 \ u6587", 4, "\ u7537", "\ u672c \ u79d1", null, null, "2013-01-01 00:00:00", "2013-01-01 00: 00:00 ", 1]:
SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец «фото» не может быть пустым.
о, спасибо, мой вопрос действительно непонятен, и я поменял его здесь stackoverflow.com/questions/52306113/…
Привет, вы должны пройти PrePersist в сеттере для столбца, который хотел применить
Например, как это
/**
* @ORM\PrePersist
*/
public function setPhotoAtValue()
{
$this->createdAt = new \DateTime();
}
Я просто хочу кое-что сделать, прежде чем продолжать, например: class AdminuserController extends Controller {/ ** * @Route ("/ testadmin") / общедоступная функция testadmin () {$ em = $ this-> getDoctrine () -> getManager (); $ adminuser = новый Adminuser (); $ adminuser-> setUsername ('Дэйв'); $ adminuser-> setPassword ('123'); // перед сохранением я хочу получить дамп 1, а затем умереть $ em-> persist ($ adminuser); $ em-> flush (); вернуть новый Response (); }} / * @ORM \ PrePersist * / public function test () {dump (1); die; }
Извините, я не могу ответить, могу только комментировать, поэтому код здесь без форматирования
Привет, друг, спасибо за помощь, и этот вопрос неясен, я изменил описание здесь: stackoverflow.com/questions/52306113/…
как видно из сообщения об ошибке, у сотрудника $ должен быть набор фотографий, а это не так - так что пока речь не идет о преперсисте. пожалуйста, сначала устраните эту проблему и проверьте, сталкиваетесь ли вы с ней по-прежнему.