Symfony 4,从数据夹具类

时间:2018-11-05 14:11:58

标签: symfony symfony4

从Symfony 4项目中,是否存在从Fixture类获取根路径目录的正确/ symfony方法?

最终目标:

在部署网站时,我使用Fixtures类在数据库中加载一些“默认”数据。 (可能不是一个好习惯)

在这些默认数据中,我需要存储项目的根路径目录,因为我需要项目中的自定义utils和services类中的此信息。

我知道有多种方法。目前,我对绝对路径进行了硬编码(<=有史以来最丑陋的方式;)

1 个答案:

答案 0 :(得分:3)

Symfonfy 4.1.7

Service.yml

services:
  _defaults:
    bind:
      $webDirectory:  '%kernel.project_dir%/public_html/'

固定文件

use Symfony\Component\HttpFoundation\File\UploadedFile;
// --
private $webDirectory, $imageLocation;
public function __construct($webDirectory)
{
    $this->webDirectory = $webDirectory;
    $this->imageLocation = $webDirectory . 'img/config/';
}
public function load(ObjectManager $manager){
    for ($i = 0; $i < 20; $i++) {
        copy($this->imageLocation . 'blog_default_50x50.jpg', $this->imageLocation . 'blog_default_50x50-copy.jpg');
        $file = new UploadedFile($this->imageLocation . 'blog_default_50x50-copy.jpg', 'Image1', null, null, null, true);
        ---
        $blogPost->setFile($file);
        $manager->persist($blogPost);
    }
    $manager->flush();
}
来自https://stackoverflow.com/a/18883334/624533

UploadedFile()信息(谢谢!)。

希望这对某人有帮助。