Laravel,调用未定义函数Database \ Seeders \ factory() [英] Laravel, Call to undefined function Database\Seeders\factory()

查看:99
本文介绍了Laravel,调用未定义函数Database \ Seeders \ factory()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

运行命令时出现标题错误:

I get the title error when I run command:

php artisan db:seed

我的屏幕截图:

我不知道这个问题是从哪里来的.我在搜索代码示例和解决方案,但没有找到任何东西:(

I have no idea where this problem comes from. I was searching for code examples and solution but I haven't found anything :(

ArticlesTableSeeder.php

ArticlesTableSeeder.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();
    }
}

ArticleFactory.php

ArticleFactory.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)
        ];
    }
}

DatabaseSeeder.php

DatabaseSeeder.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);
    }
}

预先感谢您的帮助!

推荐答案

在laravel 8中,默认路由名称空间已删除.

In laravel 8 the default route namespace was removed.

尝试更改:

ArticlesTableSeeder.php:

 factory(App\Models\Article::class, 30)->create();

收件人:

\App\Models\Article::factory()->count(30)->create(); 

ArticleFactory.php:

protected $model = App\Models\Article::class;

收件人:

protected $model = \App\Models\Article::class;

,您可能需要更改:

 'title' => $faker->text(50),
            'body' => $faker->text(200)

收件人:

 'title' => $this->faker->text(50),
        'body' => $this->faker->text(200)

这篇关于Laravel,调用未定义函数Database \ Seeders \ factory()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆