Symfony 2 BlueImp OneupUploaderBundle sql error PostPersistEvent не работает

Я пытаюсь построить Eventlistener так, чтобы при создании сущности путь (URL) изображений сохранялся в базе данных. Я использую Blueimp (jQuery-File-Uploader).
Но я получаю исключение sql. Я предполагаю, что что-то не связано с моим слушателем.

An exception occurred while executing 'INSERT INTO Image (name, url) VALUES (?, ?)' with params ["dasdasdas", null]

Мой config.yml

oneup_uploader:
mappings:
gallery:
frontend: blueimp

Мой сервис.имл

services:
app.bundle.upload_listener:
class: AppBundle\Eventlistener\ImageuploadListener
arguments: ["doctrine.orm.entity_manager"]
tags:
-  { name: kernel.event_listener,  event: oneup_uploader.post_persist, mehtod: onPostUpload}

Мое изображение Entity

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
/**
* Image
*
* @ORM\Table()
* @ORM\Entity
*/
class Image
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

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

/**
* @var string
*
* @ORM\Column(name="url", type="string", length=255)
*/
private $url;/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* Set name
*
* @param string $name
* @return Image
*/
public function setName($name)
{
$this->name = $name;

return $this;
}

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

/**
* Set url
*
* @param string $url
* @return Image
*/
public function setUrl($url)
{
$this->url = $url;

return $this;
}

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

Мой imageuploadListener

namespace AppBundle\Eventlistener;

use AppBundle\Entity\Image;
use Oneup\UploaderBundle\Event\PostPersistEvent;

class ImageuploadListener
{
protected $manager;

public function __construct(\Doctrine\ORM\EntityManager $manager)
{
$this->manager = $manager;

}

public function onPostUpload(PostPersistEvent $event)
{

$file = $event->getFile();

$object = new Image();
$object->setUrl($file->getPathName());

$this->manager->persist($object);
$this->manager->flush();
}

}

Я получаю ошибку jquery 500, но изображения перемещаются в папку. Разрешения в порядке (весь доступ).

POST http://localhost:8000/_uploader/gallery/upload 500 (Internal Server Error)

РЕДАКТИРОВАТЬ: Я нашел это в моем журнале ошибок:

 [2015-04-03 11:23:23] event.INFO: An exception was thrown while getting the uncalled listeners (Catchable Fatal Error: Argument 1 passed to AppBundle\Eventlistener\ImageuploadListener::__construct() must be an instance of AppBundle\Eventlistener\EntityManager, array given, called in D:\x...\app\cache\dev\appDevDebugProjectContainer.php on line 359 and defined) {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\ContextErrorException(code: 0): Catchable Fatal Error: Argument 1 passed to AppBundle\\Eventlistener\\ImageuploadListener::__construct() must be an instance of AppBundle\\Eventlistener\\EntityManager, array given, called in D:\\....\\app\\cache\\dev\\appDevDebugProjectContainer.php on line 359 and defined at D:\\...\\src\\AppBundle\\Eventlistener\\ImageuploadListener.php:12)"} []

РЕДАКТИРОВАТЬ 2: я изменил мой EntityManager на \ Doctrine \ ORM \ EntityManager и теперь я получаю другую ошибку (dev.log):

 request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Warning: call_user_func() expects parameter 1 to be a valid callback, class 'AppBundle\Eventlistener\ImageuploadListener' does not have a method 'onOneupuploaderPostpersist'" at D:\...\vendor\symfony\symfony\src\Symfony\Component\EventDispatcher\Debug\WrappedListener.php line 61

Есть идеи почему? Может кто-нибудь объяснить мне, что я делаю не так? Какой файл вызывает этот метод onOneupuploaderPostpersist?

1

Решение

в вашем файле service.yml

mehtod: onPostUpload

это опечатка, а не «mehtod» у тебя должно быть «метод«

этот метод, вероятно, является методом по умолчанию, который вызывается на слушателе OneupUploaderBundle, если не указано иное

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]