Laravel播种失踪课程

时间:2018-01-15 01:39:15

标签: php laravel

我正在关注此tutorial,直到我需要使用php artisan db:seed生成种子。它总是说找不到我的ArticleUser类。

我一直在寻找解决方案:

我认为这应该是开箱即用的,但它不是。我的问题是什么?我的解决方案是什么?

编辑1:有人要求您提供播种机代码!

播种机

<?php

use Illuminate\Database\Seeder;

class ArticlesTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // Let's truncate our existing records to start from scratch.
        Article::truncate();

        $faker = \Faker\Factory::create();

        // And now, let us create a few articles in our database:
        for ($i = 0; $i < 50; $i ++) {
            Article::create([
                'title' => $faker->sentence,
                'body' => $faker->paragraph,
            ]);
        }
    }
}

用户播种机

<?php

use Illuminate\Database\Seeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // Let's clear the user table first
        User::truncate();

        $faker = \Faker\Factory::create();

        // Let's make sure everyone has the same password and
        // let's hash it before the loop, or else our seeder
        // will be too slow.
        $password = Hash::make('toptal');

        User::create([
            'name' => 'Administrator',
            'email' => 'admin@test.com',
            'password' => $password,
        ]);

        // And now let's generate a few dozen users for our app:
        for ($i = 0; $i < 10; $i ++) {
            User:;create([
                'name' => $faker->name,
                'email' => $faker->email,
                'password' => $password,
            ]);
        }
    }
}

数据库播种机

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UsersTableSeeder::class);
        $this->call(ArticlesTableSeeder::class);
    }
}

3 个答案:

答案 0 :(得分:0)

您应该导入已经使用过的模型,这样您就可以在代码中仅使用 Model 的类名,或者使用模型

例如,而不仅仅是User,请使用App\User

如果您认为您将使用许多实例来使用User类名称,请使用导入,以避免输入完全限定名称的麻烦。

<?php
...
use App\User;
...
$users = User::all(); // <-- now you can do this.

答案 1 :(得分:0)

首先,您应该导入完整的类路径,即 - App\User。然后使用 - composer dump-autoload

重新生成自动加载文件

答案 2 :(得分:0)

我遵循了同一教程。只需添加一行“使用App \ Article;”这样您的班级才能找到合适的班级。
就像在c / c ++中包含头文件路径一样。