【问题标题】:Laravel 8 + Tinker: How to create dummy dataLaravel 8 + Tinker:如何创建虚拟数据
【发布时间】:2021-03-05 18:39:12
【问题描述】:

在以前的 Laravel 版本中,我在 tinker 中使用它:

php artisan tinker
factory(App\Banana::class, 3)->create();

但是在 Laravel 8 中,它给出了这个错误: `PHP 错误:找不到类“数据库/工厂/香蕉工厂”

请问如何在 Laravel 8 中使用 tinker 创建虚拟数据?谢谢。

【问题讨论】:

标签: laravel tinker


【解决方案1】:

您可以按以下步骤尝试:

  1. 在您的 Banana 模型中添加了 HasFactory,如下所示:
<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Banana extends Model
{
    use HasFactory;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'title', 'description'
    ];
}

  1. 创建工厂
- php artisan make:factory BananaFactory --model=Banana
  1. 生成 BananaFactory 后转到该路径:
<?php
 
namespace Database\Factories;
 
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
 
class BananaFactory extends Factory
{
    /**
     * The name of the factory's corresponding model.
     *
     * @var string
     */
    protected $model = Banana::class;
 
    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'title' => $this->faker->title,
            'description' => $this->faker->text,
        ];
    }
}

  1. 然后运行此命令:
 composer dump-autoload
  1. 然后打开终端运行:
php artisan tinker
Banana::factory()->count(3)->create()

重要提示:这里是与创建工厂相关的文档:

https://laravel.com/docs/8.x/database-testing#creating-factories

【讨论】:

  • 成功了。谢谢你。我错过了这部分: php artisan make:factory BananaFactory --model=Banana 那部分让它工作了。
  • @NoOne 干得好!
猜你喜欢
  • 2017-12-01
  • 2021-04-11
  • 2018-04-08
  • 2021-02-02
  • 2018-11-29
  • 2021-07-27
  • 2022-11-10
  • 2018-04-10
  • 2013-01-11
相关资源
最近更新 更多