Я только начинаю изучать Symfony 3, и я делаю блог. Я использую Doctrine Entities для взаимодействия с базой данных. Я нахожусь на Xampp на Mac OS.Symfony 3 не может перемещать загруженный файл
Я создал форму с вводом файла, но когда я хочу загрузить файл, он никогда не перемещается туда, где он должен, и в базе данных я записываю путь к временной папке Xampp.
Вот часть кода в файле Entity:
public function getFile()
{
return $this->file;
}
public function setFile(UploadedFile $file = null)
{
$this->file = $file;
}
public function upload(){
if(null === $this->file){
return;
}
$name = $this->file->getClientOriginalName();
$this->file->move($this->getUploadRootDir(), $name);
$this->image = $name;
}
public function getUploadDir(){
return 'uploads/img';
}
public function getUploadRootDir(){
return '/../../../../web/'.$this->getUploadDir();
}
Это моя форма строитель:
class BlogType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('image', FileType::class)
->add('categorie', TextType::class)
->add('photographe', TextType::class)
->add('save', SubmitType::class)
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Boreales\PlatformBundle\Entity\Blog'
));
}
}
И AddAction от контроллера:
public function addAction(Request $request)
{
//Création de l'entité
$photo = new Blog();
$form = $this->get('form.factory')->create(BlogType::class, $photo);
if($request->isMethod('POST') && $form->handleRequest($request)->isValid()){
$photo->upload();
$em = $this->getDoctrine()->getManager();
$em->persist($photo);
$em->flush();
$request->getSession()->getFlashBag()->add('notice', 'Photo enregistrée.');
var_dump($photo->getImage());
//return new Response('Coucou');
//return $this->redirectToRoute('galerie');
}
return $this->render('BorealesPlatformBundle:Blog:add.html.twig', array(
'form' => $form->createView()
));
}
Может кто-нибудь увидеть, где проблема?