【问题标题】:Fzaninotto Faker Install packageFzaninotto Faker 安装包
【发布时间】:2014-10-29 22:32:40
【问题描述】:

你能帮我解决 laravel 中的这个错误吗?我跑了php artisan db:seed --class=UserTableSeeder 并得到:

PHP 致命错误:

在 /Users/I/Laravel/authapp/app/database/seeds 中找不到类 'Faker\Factory' /UserTableSeeder.php 第 7 行

{
"error":{
    "type":"Symfony\\Component\\Debug\\Exception \\FatalErrorException",
    "message":"Class 'Faker\\Factory' not found",
    "file":"\/Users /I\/Laravel\/authapp\/app\/database\/seeds\/UserTableSeeder.php",
    "line":7
}
}

我的 UserTableSeeder.php

<?php
class UserTableSeeder extends Seeder 
{

    public function run()  
    {  

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

        User::truncate();

        foreach(range(1,30) as $index)  
        {  
            User::create([  
                'username' => str_replace('.', '_', $faker->unique()->userName),  
                'email' => $faker->email,  
                'password' => 'password', 
            ]);  
        }
    }
}  

我的 composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "4.2.*",
         "fzaninotto/faker": "1.3.*@dev"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable",
    "require-dev": {
    "fzaninotto/faker": "1.3.*@dev"
  },

}

添加逗号后,我仍然收到相同的错误,如果我尝试使用来自 github 的自动加载来包含它,它也不起作用。我在哪里可以找到错误?

我仍然遇到同样的错误。我害怕它没有加载 Fzniotto Faker 包。我能做些什么?如果我尝试通过下载包来包含它,我会得到 ​​p>

PHP Warning:  Uncaught exception 'ErrorException' with message 'require_once(../../../vendor/Faker/autoload.php): failed to open stream: No such file or directory' in /Users/stefanieness/Laravel/authapp/app/database/seeds/UserTableSeeder.php:6
Stack trace:
#0 /Users/stefanieness/Laravel/authapp/app/database/seeds/UserTableSeeder.php(6): Illuminate\Exception\Handler->handleError(2, 'require_once(.....', '/Users/stefanie...', 6, Array)
#1 /Users/stefanieness/Laravel/authapp/app/database/seeds/UserTableSeeder.php(6): UserTableSeeder::run()
#2 /Users/stefanieness/Laravel/authapp/vendor/laravel/framework/src/Illuminate/Database/Console/SeedCommand.php(57): UserTableSeeder->run()
#3 /Users/stefanieness/Laravel/authapp/vendor/laravel/framework/src/Illuminate/Console/Command.php(112): Illuminate\Database\Console\SeedCommand->fire()
#4 /Users/stefanieness/Laravel/authapp/vendor/symfony/console/Symfony/Component/Console/Command/Command.php(252): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), O in /Users/stefanieness/Laravel/authapp/app/database/seeds/UserTableSeeder.php on line 6
PHP Fatal error:  UserTableSeeder::run(): Failed opening required '../../../vendor/Faker/autoload.php' (include_path='/Users/stefanieness/Laravel/authapp/vendor/phpseclib/phpseclib/phpseclib:.:') in /Users/stefanieness/Laravel/authapp/app/database/seeds/UserTableSeeder.php on line 6
{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"UserTableSeeder::run(): Failed opening required '..\/..\/..\/vendor\/Faker\/autoload.php' (include_path='\/Users\/stefanieness\/Laravel\/authapp\/vendor\/phpseclib\/phpseclib\/phpseclib:.:')","file":"\/Users\/stefanieness\/Laravel\/authapp\/app\/database\/seeds\/UserTableSeeder.php","line":6}}SEICCN-3:authapp stefanieness$ 

【问题讨论】:

  • 你运行了“composer update”吗?
  • 是的,我发现了问题:“require-dev”:{“fzaninotto/faker”:“1.3.*@dev”},必须删除,它是通过自动安装作曲家完成的,否则它不会下载faker或出错!我也错过了 Eloquent::unguard();在 run 函数的第一行。但是,我现在不再收到错误,但我的表中也没有任何用户。它似乎根本不起作用,例如。该表未创建并填充 lorem ipsum 用户。我能做什么?

标签: php json laravel


【解决方案1】:

是的,你忘了一个逗号

 "require": {
    "laravel/framework": "4.2.*",
     "fzaninotto/faker": "1.3.*@dev"
},

然后运行composer update

【讨论】:

    【解决方案2】:

    我仍然遇到同样的错误。我害怕它没有加载 Fzniotto Faker 包。我能做什么?

    在你的 shell 中,尝试运行php artisan dump-autoload


    运行 composer update,但是您的 composer.json 中缺少一个逗号;

     "require": {
        "laravel/framework": "4.2.*"
         "fzaninotto/faker": "1.3.*@dev"
    }
    

    应该是;

    "require": {
        "laravel/framework": "4.2.*",
        "fzaninotto/faker": "1.3.*@dev"
    }
    

    如果你已经有依赖并且复制错误的代码尝试运行composer dump-autoload

    【讨论】:

      【解决方案3】:

      但是,我现在不再收到错误消息,但我的表中也没有任何用户。它似乎根本不起作用,例如。该表未创建并填充 lorem ipsum 用户。我能做什么?

      您是否创建了用户表?

      如果没有,你需要;

      运行php artisan migrate:make create_users_table

      在您的 app/database/migrations 文件夹中,您将找到新的迁移文件。

      构建您的迁移 (http://laravel.com/docs/4.2/schema)。

      运行php artisan migrate

      运行php artisan db:seed

      【讨论】:

      • 嗨,我有表,但我需要打开迁移,再次保存,然后运行 ​​db:seed,然后它就可以工作了 :))) 非常感谢!
      • 没问题,祝你有美好的一天。
      猜你喜欢
      • 1970-01-01
      • 2019-04-17
      • 2014-05-23
      • 2016-03-19
      • 2022-12-17
      • 2020-11-27
      • 2015-02-24
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多