我成功命名了整个包,但我无法使命名空间迁移工作。在autoload_classmap.php中,迁移类很好地命名空间,但是Migrator不在命名空间中查找迁移类。如何让迁移者在命名空间内搜索迁移?
迁移文件
<?php namespace Atomend\Aeuser;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Schema, User;
class UsersTable extends Migration {
public function up() {
Schema::create("users", function(Blueprint $table) {
$table
->increments("id");
autoload_classmap.php
'Atomend\\Aeuser\\UsersTable' => $baseDir . '/src/migrations/2014_04_21_184359_users_table.php',
终端错误
PHP Fatal error: Class 'UsersTable' not found in
这是合乎逻辑的,因为UsersTable位于Atomend\Aeuser
名称空间中。
发布迁移
php artisan migrate --bench="atomend/aeuser"`
所以要明确的是,当丢失命名空间时,一切都运行正常,花花公子。
答案 0 :(得分:9)
Laravel migrator对命名空间迁移不起作用。在这种情况下,你最好的选择是继承和替换Migrator类,就像Christopher Pitt在他的博客文章中解释的那样:https://medium.com/laravel-4/6e75f99cdb0。