【问题标题】:Learning Laravel: Seeding学习 Laravel:播种
【发布时间】:2020-04-28 12:42:57
【问题描述】:

我现在正在尝试种子,但是当我尝试时。它只是在命令提示符上显示一个错误,即找不到目标类。而且我已经确保文件在数据库/种子目录中。这是我的代码。请帮忙。

UserTableSeeder.php

<?php

use Illuminate\Database\Seeder;

class UserTableSeeder extends Seeder
{
  /**
  * Seed the application's database.
  *
  * @return void
  */
  public function run()
  {
    // $this->call(UserSeeder::class);
    DB::table("users")->delete();

    User::create(array(
        "name" => "Chris Sevilleja",
        "username" => "sevilayha",
        "email" => "chris@scotch.io",
        "password" => Hash::make("awesome"),
    ));
  }
}

DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
/**
 * Seed the application's database.
 *
 * @return void
 */
   public function run()
   {
     Eloquent::unguard();

     $this->call("UserTableSeeder");
   }
 }

【问题讨论】:

  • User::create 您需要在命名空间后使用use App\User
  • @kerbholz 你能详细解释一下吗?我真的不明白
  • 由于您没有包含详细的错误描述,我假设找不到 User 模型,因为脚本不知道在哪里找到它。 (我刚刚意识到您的脚本中没有命名空间,所以我的评论可能具有误导性)。在class UserTableSeeder extends Seeder 之前添加use App\User。或者/也许将错误描述添加到您的问题中
  • 它终于奏效了,就像你说的那样。在我做作曲家自动加载器之后,它确实在用户上出现错误。再次感谢老哥。真的很有帮助。

标签: database laravel seeding


【解决方案1】:

当你创建一个新种子时,你需要重新加载 composer autoloader

运行命令composer dump-autoload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2014-09-05
    • 2015-04-13
    • 2017-06-12
    • 1970-01-01
    • 2016-05-28
    相关资源
    最近更新 更多