Laravel 8 + Tinker:如何创建虚拟数据
Posted
技术标签:
【中文标题】Laravel 8 + Tinker:如何创建虚拟数据【英文标题】:Laravel 8 + Tinker: How to create dummy data 【发布时间】:2021-03-05 18:39:12 【问题描述】:在以前的 Laravel 版本中,我在 tinker 中使用它:
php artisan tinker
factory(App\Banana::class, 3)->create();
但是在 Laravel 8 中,它给出了这个错误: `PHP 错误:找不到类“数据库/工厂/香蕉工厂”
请问如何在 Laravel 8 中使用 tinker 创建虚拟数据?谢谢。
【问题讨论】:
这能回答你的问题吗? Laravel 8, Model factory class not found 感谢您的回复。我看了看,但没有用。我需要它来修补 【参考方案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'
];
-
创建工厂
- php artisan make:factory BananaFactory --model=Banana
-
生成 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,
];
-
然后运行此命令:
composer dump-autoload
-
然后打开终端运行:
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 干得好!以上是关于Laravel 8 + Tinker:如何创建虚拟数据的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 有来自 tinker 的未定义常量 App\User
在使用 tinker CLI 时,Laravel 如何在 Eloquent 模型上查找和显示动态属性?
在第 1 行的 Psy Shell 代码中找不到 Laravel 5.6 Tinker Class '...'