Я пытался добавить функцию __toString (), как я видел. Но, возможно, я не добавил это правильно. Как я могу это исправить?
это сообщение об ошибке: Ошибка: объект класса TheseBundle \ Controller \ CandidatController не может быть преобразован в строку
это мой контроллер CandidatController
<?php
namespace TheseBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use TheseBundle\Entity\candidat;
use TheseBundle\Form\candidatType;
class CandidatController extends Controller
{
public function ajoutCandidatAction(Request $request) {
$candidat=new candidat();
$form=$this->createForm(candidatType::class, $candidat);
$form->handleRequest($request);
$candidat->getSujet(null);
if ($form->isSubmitted()){
$em->$this->getDoctrine()->getManager();
$em->persist($candidat);
$em->flush();
}
return $this->render("@These/candidat/addCandidat.html.twig",array(
// return $this->render("TheseBundle:candidat:addCandidat.html.twig",array(
'form'=>$form->createView()
));
}
}
это мой CandiatTye
<?php
namespace TheseBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class candidatType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('cin')
->add('nom')
->add('prenom')
->add('score')
->add('motcle')
->add('ajouter', SubmitType::class);
}/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'TheseBundle\Entity\candidat'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'thesebundle_candidat';
}
}
это мой первый субъект кандидат
<?php
namespace TheseBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use TheseBundle\Repository\candidatRepository;
/**
* candidat
*
* @ORM\Table(name="candidat")
* @ORM\Entity(repositoryClass="candidatRepository")
*/
class candidat
{
/**
* @var int
*
* @ORM\Column(name="cin", type="integer")
* @ORM\Id
*/
private $cin;
/**
* @var string
*
* @ORM\Column(name="nom", type="string", length=255)
*/
private $nom;
/**
* @var string
*
* @ORM\Column(name="prenom", type="string", length=255)
*/
private $prenom;
/**
* @var int
*
* @ORM\Column(name="score", type="integer")
*/
private $score;
/**
* @var string
*
* @ORM\Column(name="motcle", type="string", length=255)
*/
private $motcle;
/**
* Get cin
*
* @return int
*/
function getCin() {
return $this->cin;
}
/**
* Set cin
*
* @param integer $cin
*
* @return candidat
*/
function setCin($cin) {
$this->cin = $cin;
}
/**
* @ORM\ManyToOne(targetEntity="sujet")
* @ORM\JoinColumn(name="sujet_id",referencedColumnName="reference")
*/
private $sujet;
/** Get sujet
*
* @return string
*/
function getSujet() {
return $this->sujet;
}
/**
* @param mixed $sujet
*/
function setSujet($sujet) {
$this->sujet = $sujet;
}
/**
* Set nom
*
* @param string $nom
*
* @return candidat
*/
public function setNom($nom)
{
$this->nom = $nom;
return $this;
}
/**
* Get nom
*
* @return string
*/
public function getNom()
{
return $this->nom;
}
/**
* Set prenom
*
* @param string $prenom
*
* @return candidat
*/
public function setPrenom($prenom)
{
$this->prenom = $prenom;
return $this;
}
/**
* Get prenom
*
* @return string
*/
public function getPrenom()
{
return $this->prenom;
}
/**
* Set score
*
* @param integer $score
*
* @return candidat
*/
public function setScore($score)
{
$this->score = $score;
return $this;
}
/**
* Get score
*
* @return int
*/
public function getScore()
{
return $this->score;
}
/**
* Set motcle
*
* @param string $motcle
*
* @return candidat
*/
public function setMotcle($motcle)
{
$this->motcle = $motcle;
return $this;
}
/**
* Get motcle
*
* @return string
*/
public function getMotcle()
{
return $this->motcle;
}
}
и это моя вторая сущность sujet
<?php
namespace TheseBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use TheseBundle\Repository\sujetRepository;
/**
* sujet
*
* @ORM\Table(name="sujet")
* @ORM\Entity(repositoryClass="sujetRepository")
*/
class sujet
{
public function __toString() {
return $this->titre;
}
/**
* @var string
*
* @ORM\Column(name="reference", type="string")
* @ORM\Id
*/
private $reference;
/**
* @var string
*
* @ORM\Column(name="titre", type="string", length=255)
*/
private $titre;
/**
* @var string
*
* @ORM\Column(name="description", type="string", length=255)
*/
private $description;
/**
* @var int
*
* @ORM\Column(name="nbpoint", type="integer")
*/
private $nbpoint;
function getReference() {
return $this->reference;
}
/**
* @param String $reference
*/
function setReference($reference) {
$this->reference = $reference;
}
/**
* Set titre
*
* @param string $titre
*
* @return sujet
*/
public function setTitre($titre)
{
$this->titre = $titre;
return $this;
}
/**
* Get titre
*
* @return string
*/
public function getTitre()
{
return $this->titre;
}
/**
* Set description
*
* @param string $description
*
* @return sujet
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
/**
* Get description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* Set nbpoint
*
* @param integer $nbpoint
*
* @return sujet
*/
public function setNbpoint($nbpoint)
{
$this->nbpoint = $nbpoint;
return $this;
}
/**
* Get nbpoint
*
* @return int
*/
public function getNbpoint()
{
return $this->nbpoint;
}
}
Я пытался поставить метод __toString (), я получил ту же ошибку