分页前的准备创建一些假的文章数据-Symfony5全面开发

您需要登录后才可观看此视频

为了更好的为您提供服务,请您登录后再查看本课程。

立即登录

之前的课程我们已经使用Fixtures创建了一些假的文章数据,我们查看一下之前编写的代码。打开PostFixtures类,在load()方法中,我们创建了一些简单的文章数据后面用序号来做的区分。但是这些数据太简单了,我们想创建一些真实的文章数据。

打开浏览器搜索fakerphp,打开第一个页面。我们可以使用Factory的create()方法来创建一个$faker对象。然后使用$faker对象的方法来随机的生成姓名,邮件地址或者长文本等等不同类型的数据。我们复制命令行来安装一下fakerphp

composer require fakerphp/faker

回到项目,打开控制台粘贴。回到PostFixtures类中,我们创建一个私有属性叫$faker,在构造方法中我们为$faker对象赋值。使用Factory的create()方法来创建$faker,这里选择Faker下的Factory。

我们修改一下for循环的数量,我们让它循环20次。然后修改一下文章的标题和文章的正文。文章的标题我们使用$faker对象来生成。$this->faker使用$faker对象提供的sentence()方法来生成一个句子用作标题。文章的正文,我们使用$faker对象的另外一个方法,$this->faker->paragraph(),来生成段落。

文章的发布状态这里,之前我们设置为偶数时,它为已发布状态。现在我们使用$faker的另一个方法,输入$this->faker->boolean()方法 它会随机的生成一个布尔值,然后布尔值为真的话设置为已发布的状态。

我们还想设置文章的封面图像,我已经在项目的course目录下添加了一些假的图片,我们把这些假的图片拷贝一下。我们放置到public下的uploads/images目录下。粘贴。

在load()方法中,我们随机的指定一下封面图像的文件名。添加一个变量$image='00',我们让$faker对象随机的在0到9之间生成一个数字,这里输入randomDigit()。然后再加上文件的后缀,我们设置一下文章的封面图像。

我们想在最新的一篇文章上添加一些假的评论数据,我们对第20篇文章添加一些设置,如果$i等于19,那么我们让$post设置为已发布状态。

#src/DataFixtures/PostFixtures.php

class PostFixtures extends Fixture
{
    /**
     * @var PostFactory
     */
    private $postFactory;
    private $faker;

    public function __construct(PostFactory $postFactory)
    {
        $this->postFactory = $postFactory;
        $this->faker=Factory::create();
    }

    public function load(ObjectManager $manager)
    {
        for ($i = 0; $i < 20; $i++) {
            $post = $this->postFactory->create($this->faker->sentence(), $this->faker->paragraph());
            if ($this->faker->boolean()){
                $post->setStatus('published');
            }

            $image = '00'.$this->faker->randomDigit().'.jpg';
            $post->setPostImage($image);

            if ($i == 19){
                $post->setStatus('published');
            }

            $manager->persist($post);
        }
        $manager->flush();
    }
}

在下节课,我们将创建一些假的评论数据添加到最后一篇文章上,我们将学习到如何在Fixtures中实现数据的共享。

课程讨论

当前内容评论功能已关闭。