我不知道如何使用Laravel框架在我现有的数据库表中添加一个新的列。
我试着编辑迁移文件,使用...
<?php
public function up()
{
Schema::create('users', function ($table) {
$table->integer("paid");
});
}
在终端,我执行php artisan migrate:install
和migrate
。
我如何添加新的列?
要创建一个迁移,你可以使用Artisan CLI上的migrate:make命令。 使用一个特定的名称,以避免与现有的模型发生冲突
for Laravel 3:
php artisan migrate:make add_paid_to_users
适用于Laravel 5+。
php artisan make:migration add_paid_to_users_table --table=users
然后你需要使用Schema::table()
方法(因为你要访问一个现有的表,而不是创建一个新的表). 而你可以像这样添加一个列。
public function up()
{
Schema::table('users', function($table) {
$table->integer('paid');
});
}
并且不要忘记添加回滚选项。
public function down()
{
Schema::table('users', function($table) {
$table->dropColumn('paid');
});
}
然后你就可以运行你的迁移了。
php artisan migrate
这在Laravel 3的文档中都有很好的阐述。
而对于Laravel 4 / Laravel 5:
编辑。
使用$table->integer('paid')->after('whichever_column');
来在特定的列后添加这个字段。
你可以在初始的Schema::create
方法中添加新的列,像这样。
Schema::create('users', function($table) {
$table->integer("paied");
$table->string("title");
$table->text("description");
$table->timestamps();
});
如果你已经创建了一个表,你可以通过创建一个新的迁移并使用Schema::table
方法向该表添加额外的列。
Schema::table('users', function($table) {
$table->string("title");
$table->text("description");
$table->timestamps();
});