gpt4 book ai didi

php - 找不到 Symfony 3 方法 'guessExtension()' 和 'move()'

转载 作者:搜寻专家 更新时间:2023-10-31 21:24:37 24 4
gpt4 key购买 nike

所以我一直在尝试上传多个文件并存储它们的位置。为了设置新文件名,我尝试使用 guessExtension() 方法,如 symfony 文档 http://symfony.com/doc/current/controller/upload_file.html 中所述由于某种原因,此图像中未识别出此方法以及 move() 方法。这是怎么回事?我试过包含 Symfony 的文件和上传文件类,但这并没有解决问题。

AutoController.php

        if($form->isValid() && $form->isSubmitted())
{
$powerType = $form['power_type']->getData();

if($powerType == 'kw')
{
$auto->setPowerKw($form['powerKw']->getData());
$auto->setPowerHp(ceil($form['powerKw']->getData() * 1.34));
}
else if($powerType == 'ag')
{
$auto->setPowerKw(ceil($form['powerKw']->getData() * 0.746));
$auto->setPowerHp($form['powerKw']->getData());
}

// PLACEHOLDER
$auto->setActive(true);
// PLACEHOLDER

// File uploading
$files = $auto->getImages();
$images = array();

foreach($files as $file)
{
$fileName = md5(uniqid()).'.'.$file->guessExtension();

$file->move(
$this->getParameter('carAdds_directory'),
$fileName
);
$images[$fileName] = $fileName;
}

$auto->setImages($images);

$em = $this->getDoctrine()->getManager();
$em->persist($auto);
$em->flush();

return $this->render('@Auto/auto/index.html.twig');
}

实体类

   /**
* @var array
*
* @Assert\Image(
* mimeTypes = {
* "image/png",
* "image/pjpeg",
* "image/jpeg",
* "image/gif"
* },
* mimeTypesMessage="Failas yra netinkamo formato",
* maxSize = "10M",
* maxSizeMessage="Failas yra per didelis"
* )
* @ORM\Column(name="images", type="array")
*/
private $images; /**
* Set images
*
* @param array $images
*
* @return Auto
*/
public function setImages($images)
{
$this->images = $images;

return $this;
}

/**
* Get images
*
* @return array
*/
public function getImages()
{
return $this->images;
}

表单类

            $builder->add('images', FileType::class, array(
'label' => false,
'label_attr' => array('class' => $label_offset),
'required' => false,
'attr' => array(
'class' => $styles,
'multiple' => 'multiple')))...

*编辑好吧,看起来这只是 Php storm 没有识别方法,因为我没有遇到编译器错误,但是图像没有被上传。 Here's what my database field look like after form submission is complete.

配置.yml

    carAdds_directory: '%kernel.root_dir%/web/uploads/carAdds'

Php Storm 说找不到要转到的声明。这可能是我的文件似乎没有上传的问题吗?如果是,我该如何正确指定路径?

最佳答案

您是在执行代码时遇到错误还是仅仅是 Symfony 中的自动补全?如果是后者:

/** @var File $file */
foreach($files as $file)
{
...

应该可以解决这个问题(您实际上可以键入/** 并且 PHPStorm 将自动完成其余部分)。

关于php - 找不到 Symfony 3 方法 'guessExtension()' 和 'move()',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047974/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com