如何解决:Class 'AddSourceInClotureTable' not found in laravel 5.2
How to solve : Class 'AddSourceInClotureTable' not found in laravel 5.2
我在 PHP 5.6.16 服务器上使用 Laravel 5.2.45。
当使用 php artisan migrate:refresh / migrate:reset 命令时,出现此错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'AddSourceInClotureTable' not found
请注意,迁移和 migrate:rollback 正在运行。
我尝试了谷歌搜索(在 AddSourceInClotureTable 上没有一个结果),并尝试了 composer update、composer dumpauto、cache:clear 以及可能任何一个 artisan 可以执行的命令。
这是我在项目中的单个迁移文件:
<?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"
}
}
有什么想法吗?
你应该总是 运行 composer dumpauto
或者在每次 migrate
命令执行后它的别名 composer dump-autoload
命令:
If you receive a "class not found" error when running migrations, try running the composer dump-autoload
command and re-issuing the migrate command.
此项目与上一个项目重复,迁移 table 未重命名。这里的人为错误。一旦给出新名称,所有错误都消失了。
我在 PHP 5.6.16 服务器上使用 Laravel 5.2.45。
当使用 php artisan migrate:refresh / migrate:reset 命令时,出现此错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'AddSourceInClotureTable' not found
请注意,迁移和 migrate:rollback 正在运行。
我尝试了谷歌搜索(在 AddSourceInClotureTable 上没有一个结果),并尝试了 composer update、composer dumpauto、cache:clear 以及可能任何一个 artisan 可以执行的命令。
这是我在项目中的单个迁移文件:
<?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"
}
}
有什么想法吗?
你应该总是 运行 composer dumpauto
或者在每次 migrate
命令执行后它的别名 composer dump-autoload
命令:
If you receive a "class not found" error when running migrations, try running the
composer dump-autoload
command and re-issuing the migrate command.
此项目与上一个项目重复,迁移 table 未重命名。这里的人为错误。一旦给出新名称,所有错误都消失了。