我有一个错误: 可捕获的致命错误:类ParcAutoBundle \ Entity \ Car的对象无法转换为字符串
我的维护课程是:
<?php
namespace AutoEcole\ParcAutoBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Maintenance
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AutoEcole\ParcAutoBundle\Entity\MaintenanceRepository")
*/
class Maintenance {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="datemaintenance", type="string", length=255)
*/
private $datemaintenance;
/**
* @var integer
*
* @ORM\Column(name="mileage", type="bigint")
*/
private $mileage;
/**
* @var string
*
* @ORM\Column(name="description", type="text")
*/
private $description;
/**
* Get id
*
* @return integer
*/
public function getId() {
return $this->id;
}
/**
* Set datemaintenance
*
* @param string $datemaintenance
* @return Maintenance
*/
public function setDatemaintenance($datemaintenance) {
$this->datemaintenance = $datemaintenance;
return $this;
}
/**
* Get datemaintenance
*
* @return string
*/
public function getDatemaintenance() {
return $this->datemaintenance;
}
/**
* Set mileage
*
* @param integer $mileage
* @return Maintenance
*/
public function setMileage($mileage) {
$this->mileage = $mileage;
return $this;
}
/**
* Get mileage
*
* @return integer
*/
public function getMileage() {
return $this->mileage;
}
/**
* Set description
*
* @param string $description
* @return Maintenance
*/
public function setDescription($description) {
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription() {
return $this->description;
}
/**
* @ORM\ManyToOne(targetEntity="\AutoEcole\ParcAutoBundle\Entity\Car")
* @ORM\JoinColumn(nullable=false)
*/
private $car;
/**
* Set car
*
* @param \AutoEcole\ParcAutoBundle\Entity\Car $car
* @return Maintenance
*/
public function setCar(\AutoEcole\ParcAutoBundle\Entity\Car $car = null) {
$this->car = $car;
return $this;
}
/**
* Get car
*
* @return \AutoEcole\ParcAutoBundle\Entity\Car
*/
public function getCar() {
return $this->car;
}
}
我在控制器中的功能是:
如果你想让MaintenanceType告诉我
public function addcarmaintenanceAction($id, Request $request) {
//User connecté
$user = $this->getUser();
$maintenance = new Maintenance();
$car = $this->getDoctrine()->getManager()->getRepository('ParcAutoBundle:Car')->find($id);
//dump($car);
//die();
//Création du formulaire
$form = $this->createForm(new MaintenanceType());
$form->handleRequest($request);
if ($form->isValid()) {
//Récupération des données du formulaire de l'ajout du voiture
$datemaintenance = $form['datemaintenance']->getData();
$mileage = $form['mileage']->getData();
$description = $form['description']->getData();
//Préparation de l'objet pour le persister et faire flush() ensuite
$maintenance->setDatemaintenance($datemaintenance);
$maintenance->setMileage($mileage);
$maintenance->setDescription($description);
$maintenance->setCar($id);
//Entity Manager
$em = $this->getDoctrine()->getManager();
$em->persist($maintenance);
$em->flush();
$message = "style=display:block;";
return $this->render('ParcAutoBundle:ParcAuto:car_addmaintenance.html.twig', array(
'form' => $form->createView(),
'user' => $user,
'message' => $message,
'car' => $car
));
}
$message = "style=display:none;";
return $this->render('ParcAutoBundle:ParcAuto:car_addmaintenance.html.twig', array(
'user' => $user,
'form' => $form->createView(),
'message' => $message,
'car' => $car
));
}
答案 0 :(得分:1)
问题解决了,我把__toString()放在Car Class
中public function __toString() {
return (string) $this->getRegistrationnumber();
}
答案 1 :(得分:0)
在ParcAutoBundle:ParcAuto:car_addmaintenance.html.twig
模板中,尝试显示汽车的属性,而不是直接显示汽车:
{{ car.model }} // it's an exemple property
// instead of
{{ car }}