Laravel - 动态创建表(无需迁移)

Sha*_*hay 13 php mysql database-schema laravel

我正在尝试根据管理员请求动态创建一个表,虽然在大多数Laravel的文档中看起来都很有趣和花花公子,但我似乎无法创建表.虽然我可以删除表,并根据需要添加或删除列.

这是我的基本代码模型:

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

public static function createTable() {

    Schema::create('randomName', function($table)
    {
        $table->increments('id');
        $table->string('name');
    });
}
Run Code Online (Sandbox Code Playgroud)

这可能是什么问题?不幸的是我没有收到任何错误,所以我不知道如何调试它.它只是继续下一行,就像一切正常.它只是不创建任何表.

有什么建议?非常感谢提前!

Sha*_*hay 42

呃,没关系......我已经做了足够长的时间了,解决方案一如既往......非常简单.

我只需要先为数据库建立一个连接,而不是

Schema::create('tableName', function($table)
{           
    $table->increments('id');
});
Run Code Online (Sandbox Code Playgroud)

它是

Schema::connection('mysql')->create('tableName', function($table)
{
    $table->increments('id');
});
Run Code Online (Sandbox Code Playgroud)

希望将来有一天可以帮到某人!

  • 是! 两个月后,它帮助了某人.谢谢 (4认同)

小智 8

这个更好.

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

Schema::create('tableName', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();
    });
Run Code Online (Sandbox Code Playgroud)