如何解决:在 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 中找不到类“Illuminate\Foundation\Application”