"无法找到合适的实体" Symfony2的

时间:2014-10-28 10:47:23

标签: symfony

我正在尝试在我的ficheController中添加一个新函数,它根据给定的状态显示文件。这是控制器代码:

  /**
 * @Route("/mesfiches")
 * @Method("Get")
 * @Template("rexBundle:fiche:mesfiches.html.twig")
 */
public function mesfichesAction()
{
    $em = $this->getDoctrine()->getManager();

    $entities = $em->getRepository('rexBundle:fiche')
        -> findBy(
            array('libEtatFi'=> 'brouillon'),
            array('id' => 'ASC')
        );

    return array(
        'entities' => $entities,
    );

}

这在我的枝条代码中:

   {% extends 'JordiLlonchCrudGeneratorBundle::layout.html.twig' %}
   {% block body -%}
     <h1>fiche list</h1>

  <table class="records_list">
    <thead>
    <tr>
        <th>Id</th>
        <th>Titrefiche</th>
        <th>Dateouv</th>

    </tr>
    </thead>
    <tbody>
    {% for entity in entities %}
        <tr>
            <td><a href="{{ path('fiche_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td>
            <td>{{ entity.titreFiche }}</td>
            <td>{% if entity.dateOuv %}{{ entity.dateOuv|date('Y-m-d H:i:s') }}{% endif %}</td>

            <td>
                <ul>
                    <li>
                        <a href="{{ path('fiche_show', { 'id': entity.id }) }}">Afficher</a>
                    </li>
                    <li>
                        <a href="{{ path('fiche_edit', { 'id': entity.id }) }}">Modifier</a>
                    </li>
                </ul>
            </td>
        </tr>
    {% endfor %}
    </tbody>
</table>

{% endblock %}

最后,这是我的路由配置:

  fiche_mesfiches:
   pattern:  /mesfiches
   defaults: { _controller: rexBundle:fiche:mesfiches }
   methods:   [Get]

如何删除此异常?   这是我的实体实体:

       <?php

   namespace rex\Bundle\Entity;

   use Doctrine\ORM\Mapping as ORM;
   use Symfony\Component\Validator\Constraints as Assert;
   use Symfony\Component\HttpKernel\DependencyInjection\Extension;
   use Symfony\Component\HttpFoundation\File\UploadedFile;
   use Doctrine\Common\Collections\ArrayCollection;
   use Symfony\Component\Finder\Finder;

 / **
 * fiche
  * @ORM\Table()
  * @ORM\Entity(repositoryClass="rex\Bundle\Entity\ficheRepository")
  * @ORM\HasLifecycleCallbacks
  */

  class fiche
  {
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="titreFiche", type="string", length=255 , nullable= false)
 */
private $titreFiche;
/**
 * @var string
 *
 * @ORM\Column(name="auteur", type="string", length=255 , nullable= false)
 */
private $auteur;
/**
 * @param string $auteur
 */
public function setAuteur($auteur)
{
    $this->auteur = $auteur;
}

/**
 * @return string
 */
public function getAuteur()
{
    return $this->auteur;
}

/**
 * @var \DateTime
 *
 * @ORM\Column(name="dateOuv", type="date", nullable= true)
 */
private $dateOuv;


/**
 * @var string
 *
 * @ORM\Column(name="observation", type="string", length=100000 , nullable= true)
 */
private $observation;

/**
 * @var string
 *
 * @ORM\Column(name="cause", type="string", length=100000 , nullable= true)
 */
private $cause;

/**
 * @var string
 *
 * @ORM\Column(name="solution", type="string", length=100000 , nullable= true)
 */
private $solution;

/**
 * @var string
 *
 * @ORM\Column(name="comment", type="string", length=100000 , nullable= true)
 */
private $comment;

/**
 * @var string
 *
 * @ORM\Column(name="confid", type="string" , nullable= true)
 */
private $confid;

/**
 * @var string
 *
 * @ORM\Column(name="atteinteSecPerso", type="string", nullable= true )
 */
private $atteinteSecPerso;

/**
 * @var string
 *
 * @ORM\Column(name="perso", type="string", length=255 , nullable= true)
 */
private $perso;

/**
 * @var string
 *
 * @ORM\Column(name="atteinteSecMat", type="string" , nullable= true)
 */
private $atteinteSecMat;

/**
 * @var string
 *
 * @ORM\Column(name="mat", type="string", length=255 , nullable= true)
 */
private $mat;

/**
 * @var string
 *
 * @ORM\Column(name="planAct", type="string", length=100000 , nullable= true)
 */
private $planAct;

/**
 * @var string
 *
 * @ORM\Column(name="cout", type="string" , nullable= true)
 */
private $cout;

/**
 * @var string
 *
 * @ORM\Column(name="delai", type="string" , nullable= true)
 */
private $delai;

/**
 * @var \DateTime
 *
 * @ORM\Column(name="dateMEP", type="date" , nullable= true)
 */
private $dateMEP;


/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\estimation")
 * @ORM\JoinColumn
 */
private $libEstimat;

/**
 * @var string
 * @ORM\ManyToMany(targetEntity="rex\Bundle\Entity\processusImpacte")
 * @ORM\JoinColumn
 */
private $libProcess;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\impactDelai")
 * @ORM\JoinColumn
 */
private $valeur;

/**
 * @param string typeImpD
 */
public function setTypeImpD($typeImpD)
{
    $this->typeImpD = $typeImpD;
}


/**
 * @var string
 *
 * @ORM\Column(name="typeImpD", type="string", nullable= true)
 */
private $typeImpD;

/**
 * @param string $typeImpC
 */
public function setTypeImpC($typeImpC)
{
    $this->typeImpC = $typeImpC;
}

/**
 * @return string
 */
public function getTypeImpC()
{
    return $this->typeImpC;
}

/**
 * @return string
 */
public function getTypeImpD()
{
    return $this->typeImpD;
}

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\impactCout")
 * @ORM\JoinColumn
 */
private $montant;


/**
 * @var string
 *
 * @ORM\Column(name="typeImpC", type="string", nullable= true)
 */
private $typeImpC;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\typeActeur" )
 * @ORM\JoinColumn
 */
private $libTypeAct;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\UserBundle\Entity\User")
 * @ORM\JoinColumn
 */
private $nom;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\etatFiche")
 * @ORM\JoinColumn
 */
private $libEtatFi;

/**
 * @var string
 * @ORM\ManyToMany(targetEntity="rex\Bundle\Entity\origineVal")
 * @ORM\JoinColumn
 */

private $libOrigVal;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\origineInterne")
 * @ORM\JoinColumn
 */

private $libOrigInt;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\etatAction")
 * @ORM\JoinColumn
 */
private $libEtatAc;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\projet")
 * @ORM\JoinColumn
 */
private $libProjet;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\origineExterne")
 * @ORM\JoinColumn
 */
private $libActeur;

/**
 * @var string
 * @ORM\ManyToMany(targetEntity="rex\Bundle\Entity\motsCles")
 * @ORM\JoinColumn
 */

private $libmot;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\complexite")
 * @ORM\JoinColumn
 */

private $complexite;

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\serviceEmetteur")
 * @ORM\JoinColumn
 */

private $libService;

/**
 * @param string $libEstimat
 */
public function setLibEstimat($libEstimat)
{
    $this->libEstimat = $libEstimat;
}

/**
 * @return string
 */
public function getLibEstimat()
{
    return $this->libEstimat;
}


/**
 * @param string $libEtatFi
 */
public function setLibEtatFi($libEtatFi)
{
    $this->libEtatFi = $libEtatFi;
}

/**
 * @return string
 */
public function getLibEtatFi()
{
    return $this->libEtatFi;
}



/**
 * @param string $libOrigVal
 */
public function setLibOrigVal($libOrigVal)
{
    $this->libOrigVal = $libOrigVal;
}

/**
 * @return string
 */
public function getLibOrigVal()
{
    return $this->libOrigVal;
}



/**
 * @param string $libOrigInt
 */
public function setLibOrigInt($libOrigInt)
{
    $this->libOrigInt = $libOrigInt;
}

/**
 * @return string
 */
public function getLibOrigInt()
{
    return $this->libOrigInt;
}



/**
 * @param string $libEtatAc
 */
public function setLibEtatAc($libEtatAc)
{
    $this->libEtatAc = $libEtatAc;
}

/**
 * @return string
 */
public function getLibEtatAc()
{
    return $this->libEtatAc;
}



/**
 * @param string $libProjet
 */
public function setLibProjet($libProjet)
{
    $this->libProjet = $libProjet;
}

/**
 * @return string
 */
public function getLibProjet()
{
    return $this->libProjet;
}



/**
 * @param string $libActeur
 */
public function setLibActeur($libActeur)
{
    $this->libActeur = $libActeur;
}

/**
 * @return string
 */
public function getLibActeur()
{
    return $this->libActeur;
}



/**
 * @param string $libmot
 */
public function setLibmot($libmot)
{
    $this->libmot = $libmot;
}

/**
 * @return string
 */
public function getLibmot()
{
    return $this->libmot;
}


/**
 * Get id
 *
 * @return integer
 */
public function getId()
{
    return $this->id;
}

/**
 * Set titreFiche
 *
 * @param string $titreFiche
 * @return fiche
 */
public function setTitreFiche($titreFiche)
{
    $this->titreFiche = $titreFiche;

    return $this;
}

/**
 * Get titreFiche
 *
 * @return string
 */
public function getTitreFiche()
{
    return $this->titreFiche;
}

/**
 * Set dateOuv
 *
 * @param \DateTime $dateOuv
 * @return fiche
 */
public function setDateOuv($dateOuv)
{
    $this->dateOuv = $dateOuv;

    return $this;
}

/**
 * Get dateOuv
 *
 * @return \DateTime
 */
public function getDateOuv()
{
    return $this->dateOuv;
}


/**
 * Set observation
 *
 * @param string $observation
 * @return fiche
 */
public function setObservation($observation)
{
    $this->observation = $observation;

    return $this;
}

/**
 * Get observation
 *
 * @return string
 */
public function getObservation()
{
    return $this->observation;
}

/**
 * Set cause
 *
 * @param string $cause
 * @return fiche
 */
public function setCause($cause)
{
    $this->cause = $cause;

    return $this;
}
/**
 * Get cause
 *
 * @return string
 */
public function getCause()
{
    return $this->cause;
}

/**
 * Set solution
 *
 * @param string $solution
 * @return fiche
 */
public function setSolution($solution)
{
    $this->solution = $solution;

    return $this;
}

/**
 * Get solution
 *
 * @return string
 */
public function getSolution()
{
    return $this->solution;
}

/**
 * Set comment
 *
 * @param string $comment
 * @return fiche
 */
public function setComment($comment)
{
    $this->comment = $comment;

    return $this;
}

/**
 * Get comment
 *
 * @return string
 */
public function getComment()
{
    return $this->comment;
}

/**
 * Set confid
 *
 * @param string $confid
 * @return fiche
 */
public function setConfid($confid)
{
    $this->confid = $confid;

    return $this;
}

/**
 * Get confid
 *
 * @return string
 */
public function getConfid()
{
    return $this->confid;
}

/**
 * Set atteinteSecPerso
 *
 * @param string $atteinteSecPerso
 * @return fiche
 */
public function setAtteinteSecPerso($atteinteSecPerso)
{
    $this->atteinteSecPerso = $atteinteSecPerso;

    return $this;
}

/**
 * Get atteinteSecPerso
 *
 * @return string
 */
public function getAtteinteSecPerso()
{
    return $this->atteinteSecPerso;
}

/**
 * Set perso
 *
 * @param string $perso
 * @return fiche
 */
public function setPerso($perso)
{
    $this->perso = $perso;

    return $this;
}

/**
 * Get perso
 *
 * @return string
 */
public function getPerso()
{
    return $this->perso;
}

/**
 * Set atteinteSecMat
 *
 * @param string $atteinteSecMat
 * @return fiche
 */
public function setAtteinteSecMat($atteinteSecMat)
{
    $this->atteinteSecMat = $atteinteSecMat;

    return $this;
}

/**
 * Get atteinteSecMat
 *
 * @return string
 */
public function getAtteinteSecMat()
{
    return $this->atteinteSecMat;
}

/**
 * Set mat
 *
 * @param string $mat
 * @return fiche
 */
public function setMat($mat)
{
    $this->mat = $mat;

    return $this;
}

/**
 * Get mat
 *
 * @return string
 */
public function getMat()
{
    return $this->mat;
}

/**
 * Set planAct
 *
 * @param string $planAct
 * @return fiche
 */
public function setPlanAct($planAct)
{
    $this->planAct = $planAct;

    return $this;
}

/**
 * Get planAct
 *
 * @return string
 */
public function getPlanAct()
{
    return $this->planAct;
}

/**
 * Set cout
 *
 * @param string $cout
 * @return fiche
 */
public function setCout($cout)
{
    $this->cout = $cout;

    return $this;
}

/**
/**
 * Get cout
 *
 * @return string
 */
public function getCout()
{
    return $this->cout;
}

/**
 * Set delai
 *
 * @param string $delai
 * @return fiche
 */
public function setDelai($delai)
{
    $this->delai = $delai;

    return $this;
}

/**
 * Get delai
 *
 * @return string
 */
public function getDelai()
{
    return $this->delai;
}

/**
 * Set dateMEP
 *
 * @param \DateTime $dateMEP
 * @return fiche
 */
public function setDateMEP($dateMEP)
{
    $this->dateMEP = $dateMEP;

    return $this;
}



/**
 * @param string $complexite
 */
public function setComplexite($complexite)
{
    $this->complexite = $complexite;
}

/**
 * @return string
 */
public function getComplexite()
{
    return $this->complexite;
}

/**
 * @param string $libService
 */
public function setLibService($libService)
{
    $this->libService = $libService;
}



/**
 * @return string
 */
public function getLibService()
{
    return $this->libService;
}

/**
 * Get dateMEP
 *
 * @return \DateTime
 */
public function getDateMEP()
{
    return $this->dateMEP;
}



/**
 * @param string $nom
 */
public function setNom($nom)
{
    $this->nom = $nom;
}

/**
 * @return string
 */
public function getNom()
{
    return $this->nom;
}


/**
 * @param string $libTypeAct
 */
public function setLibTypeAct($libTypeAct)
{
    $this->libTypeAct = $libTypeAct;
}

/**
 * @return string
 */
public function getLibTypeAct()
{
    return $this->libTypeAct;
}


/**
 * @param string $montant
 */
public function setMontant($montant)
{
    $this->montant = $montant;
}

/**
 * @return string
 */
public function getMontant()
{
    return $this->montant;
}


/**
 * @param string $valeur
 */
public function setValeur($valeur)
{
    $this->valeur = $valeur;
}

/**
 * @return string
 */
public function getValeur()
{
    return $this->valeur;
}


/**
 * @param string $libProcess
 */
public function setLibProcess($libProcess)
{
    $this->libProcess = $libProcess;
}

/**
 * @return string
 */
public function getLibProcess()
{
    return $this->libProcess;
}

/**
 * @ORM\OneToMany(targetEntity="rex\Bundle\Entity\document" , mappedBy="fiche", cascade={"all"})
 */
private $files;

/**
 * @param mixed $files
 */
public function __construct()
{
    $this->files = new ArrayCollection();
}


public function setFiles(ArrayCollection $files)
{
    $this->files = $files;
}

/**
 * @return mixed
 */
public function getFiles()
{
    return $this->files;
}

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\systeme" )
 * @ORM\JoinColumn
 */
private $libSys;

/**
 * @param string $libSys
 */
public function setlibSys($libSys)
{
    $this->libSys = $libSys;
}

/**
 * @return string
 */
public function getlibSys()
{
    return $this->libSys;
}
/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\UserBundle\Entity\User")
 * @ORM\JoinColumn (name="verificateur")
 */
private $verificateur;

/**
 * @param string $verificateur
 */
public function setVerificateur($verificateur)
{
    $this->verificateur = $verificateur;
}
/**
 * @return string
 */
public function getVerificateur()
{
    return $this->verificateur;
}

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\equipement")
 * @ORM\JoinColumn
 */
private $libEquip;

/**
 * @param string $libEquip
 */
public function setLibEquip($libEquip)
{
    $this->libEquip = $libEquip;
}

/**
 * @return string
 */
public function getLibEquip()
{
    return $this->libEquip;
}

/**
 * @var string
 * @ORM\ManyToOne(targetEntity="rex\Bundle\Entity\phaseProjet")
 * @ORM\JoinColumn
 */
private $libPhase;

/**
 * @param string $libPhase
 */
public function setLibPhase($libPhase)
{
    $this->libPhase = $libPhase;
}

/**
 * @return string
 */
public function getLibPhase()
{
    return $this->libPhase;
}

public function getChemin(){

    $a = $this->getId();
    $finder = new Finder();

    if(is_dir(__DIR__ .'/../../../../web/uploads/'.$a)){
    $finder->files()->in(__DIR__ .'/../../../../web/uploads/'.$a);
   // $finder->files()->size('< 50M');

            foreach ($finder as $file) {
                if ($file->getRelativePathname())
                {
                // affiche le chemin absolu
               // print $file->getRealpath()."\n";

                $res = "<a href=\"http://localhost:8000/uploads/".$a."/".$file-       >getRelativePathname()."\" target=\"_blank\">".$file->getRelativePathname()."</a><BR>";
                  print $res;
                     }
              else {print"pas de fichier";};
                  }
    }

    }

       }

这是我在config.yml中的学说博客

   # Doctrine Configuration
doctrine:
dbal:
    driver:   "%database_driver%"
    host:     "%database_host%"
    port:     "%database_port%"
    dbname:   "%database_name%"
    user:     "%database_user%"
    password: "%database_password%"
    charset:  UTF8

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true

3 个答案:

答案 0 :(得分:0)

如果我看到这一点,你的实体类文件应位于:

/path/to/your/project/src/rexBundle/Entity/fiche.php

你有这个档案吗?

另外,请注意您的命名惯例非常不规范。 camelCase仅应用于命名方法和变量。另一方面,类/命名空间应使用Capitalization命名约定。

答案 1 :(得分:0)

解决方案是,当您在控制器中有路径时,如下所示:

* @Route("/{id}",

你想要这样/ fiche的东西和定义路径/ fiche的方法是/ {id}的方法,比你有问题,因为找不到id“fiche”。愚蠢,我知道。

所以,为了完成这项工作,你必须把方法放在/ fiche的方法/ {id}上。 : - )

答案 2 :(得分:-1)

你可以简单地使用try和catch块......喜欢:

$entities = array();

try {
 $entities = $em->getRepository('rexBundle:fiche')
    -> findBy(
        array('libEtatFi'=> 'brouillon'),
        array('id' => 'ASC')
    );
} catch(\Exception $e){

}

return array(
    'entities' => $entities,
);