Ich habe eine Tabelle, dieDer Methodenname muss entweder mit findBy oder findOneBy beginnen! Fehler
Normalerweise Beziehung mit Application \ Sonata \ MediaBundle \ Entity \ Media (SonataMediaBundle Entity) als 'Medien' hat, kann ich das Formular für Medien wie dies unten machen,
$form = $this->createFormBuilder($myMedia)
->add('name')
->add('media') // make the selectbox
->add('save', SubmitType::class, array('label' => 'Create Post'))
->getForm();
Allerdings möchte ich auf einige Medien aus allen Medien beschränken, dann habe ich das gemacht.
$form = $this->createFormBuilder($myMedia)
->add('name')
->add('media','entity',array(
'class' => "Application\Sonata\MediaBundle\Entity\Media",
'query_builder' => function(EntityRepository $er) {
return $er->createQuery('SELECT r FROM ApplicationSonataMediaBundle:Media');
}))
->add('save', SubmitType::class, array('label' => 'Create Post'))
->getForm();
Allerdings zeigt es den Fehler so.
Undefined method 'createQuery'. The method name must start with either findBy or findOneBy!
Ich habe einige articles und verstanden gefunden ist es mit Repository bezogen. Aber ich bin mir nicht sicher, auf welches Repository ich hinweisen soll. Es gibt keine Repository-Klasse unter Sonata\MediaBundle\
entweder Application\Sonata\MediaBundle
namespace Application\Sonata\MediaBundle\Entity;
use Sonata\MediaBundle\Entity\BaseMedia as BaseMedia;
@ORM\Entity(repositoryClass="Where is my repository???")
class Media extends BaseMedia
{
/**
* @var int $id
*/
protected $id;
BTW, mein erster Code zeigt nur Auswahlbox für Bilder (Medien)
Es ist nicht sinnvoll genug ist, Bilder zu wählen, Gibt es eine geeignetere Art für die Auswahl von Bildern?
Suche im Projektordner mit Schlüsselwort MediaRepository. Wenn Sie es finden, suchen Sie Namespace und geben Sie es ein. –