Migration Laravel 4迁移-未找到类

Migration Laravel 4迁移-未找到类,migration,laravel,Migration,Laravel,这个问题现在已经解决了-我使用了以下选项: 多亏了IRC,问题才得以解决。有人叫我跑 php composer.phar dump-autoload 这为我解决了问题。这可能与我奇怪的作曲设置有关 我刚开始和Laravel4玩一个可能的未来项目,来自Laravel3。我首先创建了一个新的迁移,使用artisan创建_blogs_表: php artisan migrate:make create_blogs_table --table=blogs --create 这生成了基本的迁移文件结

这个问题现在已经解决了-我使用了以下选项:

多亏了IRC,问题才得以解决。有人叫我跑

php composer.phar dump-autoload
这为我解决了问题。这可能与我奇怪的作曲设置有关


我刚开始和Laravel4玩一个可能的未来项目,来自Laravel3。我首先创建了一个新的迁移,使用artisan创建_blogs_表:

php artisan migrate:make create_blogs_table --table=blogs --create
这生成了基本的迁移文件结构,然后我又填写了一些:

<?php

use Illuminate\Database\Migrations\Migration;

class CreateBlogsTable extends Migration
{

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('blogs', function($table)
        {
            $table->increments('id');
            $table->string('title');
            $table->text('description')->nullable();
            $table->integer('user_id')->unsigned();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('blogs');
    }
}
*注意,我为扩展名为.dev的域设置了一个本地数据库连接

以前,这可以正常工作(在Laravel 3中),但使用Lighting时,我会收到以下错误:

PHP Fatal error:  Class 'CreateBlogsTable' not found in /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php on line 301
PHP Stack trace:
PHP   1. {main}() /var/www/gamingsite/artisan:0
PHP   2. Symfony\Component\Console\Application->run() /var/www/gamingsite/artisan:57
PHP   3. Symfony\Component\Console\Application->doRun() /var/www/gamingsite/vendor/symfony/console/Symfony/Component/Console/Application.php:106
PHP   4. Illuminate\Console\Command->run() /var/www/gamingsite/vendor/symfony/console/Symfony/Component/Console/Application.php:193
PHP   5. Symfony\Component\Console\Command\Command->run() /var/www/gamingsite/vendor/illuminate/console/src/Illuminate/Console/Command.php:95
PHP   6. Illuminate\Console\Command->execute() /var/www/gamingsite/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:240
PHP   7. Illuminate\Database\Console\Migrations\MigrateCommand->fire() /var/www/gamingsite/vendor/illuminate/console/src/Illuminate/Console/Command.php:107
PHP   8. Illuminate\Database\Migrations\Migrator->run() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:69
PHP   9. Illuminate\Database\Migrations\Migrator->runMigrationList() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php:75
PHP  10. Illuminate\Database\Migrations\Migrator->runUp() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php:106
PHP  11. Illuminate\Database\Migrations\Migrator->resolve() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php:125
PHP Fatal error:  Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/var/www/gamingsite/app/start/../storage/logs/log-2012-12-28.txt" could not be opened: failed to open stream: Permission denied' in /var/www/gamingsite/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:71
Stack trace:
#0 /var/www/gamingsite/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(77): Monolog\Handler\StreamHandler->write(Array)
#1 /var/www/gamingsite/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\RotatingFileHandler->write(Array)
#2 /var/www/gamingsite/vendor/monolog/monolog/src/Monolog/Logger.php(214): Monolog\Handler\AbstractProcessingHandler->handle(Array)
#3 /var/www/gamingsite/vendor/monolog/monolog/src/Monolog/Logger.php(278): Monolog\Logger->addRecord(400, Object(Symfony\Component\HttpKernel\Exception\FatalErrorException), Array)
#4 [internal function]: Monolog\Logger->addError(Object(Symfony\Component\HttpKernel\Exception\FatalErrorExcepti in /var/www/gamingsite/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 71
PHP Stack trace:
PHP   1. {main}() /var/www/gamingsite/artisan:0
PHP   2. Symfony\Component\Console\Application->run() /var/www/gamingsite/artisan:57
PHP   3. Symfony\Component\Console\Application->doRun() /var/www/gamingsite/vendor/symfony/console/Symfony/Component/Console/Application.php:106
PHP   4. Illuminate\Console\Command->run() /var/www/gamingsite/vendor/symfony/console/Symfony/Component/Console/Application.php:193
PHP   5. Symfony\Component\Console\Command\Command->run() /var/www/gamingsite/vendor/illuminate/console/src/Illuminate/Console/Command.php:95
PHP   6. Illuminate\Console\Command->execute() /var/www/gamingsite/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:240
PHP   7. Illuminate\Database\Console\Migrations\MigrateCommand->fire() /var/www/gamingsite/vendor/illuminate/console/src/Illuminate/Console/Command.php:107
PHP   8. Illuminate\Database\Migrations\Migrator->run() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Console/Migrations/MigrateCommand.php:69
PHP   9. Illuminate\Database\Migrations\Migrator->runMigrationList() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php:75
PHP  10. Illuminate\Database\Migrations\Migrator->runUp() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php:106
PHP  11. Illuminate\Database\Migrations\Migrator->resolve() /var/www/gamingsite/vendor/illuminate/database/src/Illuminate/Database/Migrations/Migrator.php:125
我已经检查过了,数据库/迁移/文件夹肯定正在自动加载。我不知道这个问题的原因是什么。在IRC和谷歌上问过之后,我仍然完全不知道,所以希望有人能在这里帮助我

提前谢谢

在Laravel4(Lightning)迁移类中,不需要设置无符号方法。你可以试试这个

  class CreateBlogsTable extends Migration
{

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('blogs', function($table)
        {
            $table->increments('id');
            $table->string('title');
            $table->text('description')->nullable();
            $table->integer('user_id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('blogs');
    }
}

在与您聊天之后,我知道了两个问题,一个是上面已经提到的问题,另一个问题是由于类未注册到composer autoload。您必须手动运行:php composer.phar dump autoload

我在xubuntu上遇到了这个错误,并用sudo composer dump autoload修复了它

Artisan做同样的工作:

php artisan dump-autoload

提醒那些不熟悉
composer
的人更新你的composer(
composer self Update
),然后运行你的composer函数。

只是尝试了一下,还是没有成功。我仍然得到类未找到错误。如果有相同的问题,运行
php composer.phar dump autoload
可以工作。这实际上比使用composer要好,因为它生成了一个优化的类映射。实际上,我不存在此命令,但
composer dump autoload
解决了问题。谢谢对于这个想法,至少。那些搜索这个问题的人,请注意这个问题是3年前的,而laravel的版本是4。软件本身也在不断变化。这意味着,此命令在最新artisan中不存在。非常感谢。
php artisan dump-autoload