如何解决:在 laravel 5.2 中找不到类“AddSourceInClotureTable”

Posted

技术标签:

【中文标题】如何解决:在 laravel 5.2 中找不到类“AddSourceInClotureTable”【英文标题】:How to solve : Class 'AddSourceInClotureTable' not found in laravel 5.2 【发布时间】:2017-01-26 05:04:21 【问题描述】:

我在 php 5.6.16 服务器上使用 Laravel 5.2.45。

当使用 php artisan migrate:refresh / migrate:reset 命令时,我得到这个错误:

 [Symfony\Component\Debug\Exception\FatalErrorException]
  Class 'AddSourceInClotureTable' not found

请注意 migrate 和 migrate:rollback 正在工作。

我尝试使用谷歌搜索(在 AddSourceInClotureTable 上没有一个结果),并尝试使用 composer update、composer dumpauto、cache:clear 以及可能任何单个命令工匠都可以执行。

这是我在项目中的单个迁移文件:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateCommandTable extends Migration

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    
        Schema::create('commands', function (Blueprint $table) 
            $table->increments('id');
            $table->integer("provider");
            $table->string("number")->unique();;
            $table->date("delivered_at");
            $table->date("ordered_at");
            $table->integer("buyer");
            $table->boolean("deliver_mode");
            $table->integer("payment");
            $table->timestamps();
        );
        Schema::create('payment', function (Blueprint $table) 
            $table->increments('id');
            $table->string("name");
            $table->timestamps();
        );
        Schema::create('transports', function (Blueprint $table) 
            $table->increments('id');
            $table->string("name", 255)->unique();
            $table->string("code", 255)->unique();
            $table->integer("carrier");
            $table->timestamps();
        );
    

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    
        Schema::drop('commands');
        Schema::drop('payment');
        Schema::drop('transports');
    

这是我的 composer.json


    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": 
        "php": ">=5.5.9",
        "laravel/framework": "5.2.*",
        "barryvdh/laravel-ide-helper": "^2.1",
        "laravelcollective/html": "5.2.*",
        "barryvdh/laravel-dompdf": "0.6.*",
        "caffeinated/flash": "~2.0"
    ,
    "require-dev": 
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "symfony/css-selector": "2.8.*|3.0.*",
        "symfony/dom-crawler": "2.8.*|3.0.*"
    ,
    "autoload": 
        "classmap": [
            "database"
        ],
        "psr-4": 
            "App\\": "app/"
        
    ,
    "autoload-dev": 
        "classmap": [
            "tests/TestCase.php"
        ]
    ,
    "scripts": 
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ],
        "post-install-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postInstall",
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
            "php artisan optimize"
        ]
    ,
    "config": 
        "preferred-install": "dist"
    

有什么想法吗?

【问题讨论】:

你在哪里使用AddSourceInClotureTable?我觉得应该是closure 而不是cloture 我完全不知道该类在使用什么。 【参考方案1】:

您应该在每次执行migrate 命令后始终运行composer dumpauto 或其别名composer dump-autoload 命令:

如果您在运行迁移时收到“找不到类”错误,请尝试运行composer dump-autoload 命令并重新发出迁移命令。

https://laravel.com/docs/5.2/migrations#running-migrations

【讨论】:

抱歉,我试过了,但没有什么新东西,我已经编辑了我的问题。谢谢。【参考方案2】:

此项目与前一个项目重复,迁移表未重命名。这里的人为错误。新名称一出,所有错误都消失了。

【讨论】:

以上是关于如何解决:在 laravel 5.2 中找不到类“AddSourceInClotureTable”的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 5.2 中找不到类“App\Http\Controllers\Session”[重复]

在基本 Laravel 5.4 教程中找不到类“任务”

在 Laravel 中找不到异常类

在 laravel 5.4 中找不到类“Illuminate\Foundation\Application”

在 Laravel 中找不到类“App\Http\Controllers\Response”错误

在 laravel 4 中找不到类控制器