Ошибка: объект класса не может быть преобразован в строку - PullRequest
0 голосов
/ 12 апреля 2020

Я пытался добавить функцию __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 (), я получил ту же ошибку

...