Jak*_*dło 22 php laravel laravel-8
运行命令时出现标题错误:
php artisan db:seed
Run Code Online (Sandbox Code Playgroud)
我不知道这个问题从何而来。我正在寻找代码示例和解决方案,但我什么也没找到:(
文章TableSeeder.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
// use Laracasts\TestDummy\Factory as TestDummy;
class ArticlesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\Models\Article::class, 30)->create();
}
}
Run Code Online (Sandbox Code Playgroud)
文章工厂.php
<?php
namespace Database\Factories;
use App\Models\Model;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class ModelFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = App\Models\Article::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'title' => $faker->text(50),
'body' => $faker->text(200)
];
}
}
Run Code Online (Sandbox Code Playgroud)
数据库浏览器.php
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(ArticlesTableSeeder::class);
}
}
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助!
小智 41
在 laravel 8 中删除了默认路由命名空间。
尝试改变:
文章TableSeeder.php:
factory(App\Models\Article::class, 30)->create();
Run Code Online (Sandbox Code Playgroud)
到:
\App\Models\Article::factory()->count(30)->create();
Run Code Online (Sandbox Code Playgroud)
文章工厂.php:
protected $model = App\Models\Article::class;
Run Code Online (Sandbox Code Playgroud)
到:
protected $model = \App\Models\Article::class;
Run Code Online (Sandbox Code Playgroud)
你可能不得不改变:
'title' => $faker->text(50),
'body' => $faker->text(200)
Run Code Online (Sandbox Code Playgroud)
到:
'title' => $this->faker->text(50),
'body' => $this->faker->text(200)
Run Code Online (Sandbox Code Playgroud)
MK.*_*MK. 10
这里提到的所有建议都是正确的。但是,composer require laravel/legacy-factories如果您使用的是 Laravel 8 ,则必须运行才能运行代码。如果您收到错误消息,请Class 'Database\Factories\ArticleFactory' not found
确保您拥有class ArticleFactory extends Factory而不是 ModalFactory。并确保您像这里一样在文章模型中使用 HasFactory。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
use HasFactory;
}
Run Code Online (Sandbox Code Playgroud)
更多信息:Laravel 8 Modal 工厂
文章TableSeeder.php
<?php
namespace Database\Seeders;
use App\Models\Article;
use Illuminate\Database\Seeder;
class ArticlesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Article::factory()->times(30)->create();
}
}
Run Code Online (Sandbox Code Playgroud)
文章工厂.php
<?php
namespace Database\Factories;
use App\Models\Article;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class ArticleFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Article::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'title' => $this->faker->text(50),
'body' => $this->faker->text(200)
];
}
}
Run Code Online (Sandbox Code Playgroud)
尝试改变
factory(App\Models\Article::class, 30)->create();
Run Code Online (Sandbox Code Playgroud)
到
App\Models\Article::factory()->count(30)->create();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21100 次 |
| 最近记录: |