如何使Laravel迁移器与命名空间迁移一起工作?

时间:2014-04-25 18:35:12

标签: laravel laravel-4

我成功命名了整个包,但我无法使命名空间迁移工作。在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"`

所以要明确的是,当丢失命名空间时,一切都运行正常,花花公子。

1 个答案:

答案 0 :(得分:9)

Laravel migrator对命名空间迁移不起作用。在这种情况下,你最好的选择是继承和替换Migrator类,就像Christopher Pitt在他的博客文章中解释的那样:https://medium.com/laravel-4/6e75f99cdb0