我在表格任务中添加了新的列名称标题。但我收到一个错误,该列在该表中不存在。任何人都可以帮我解决这个错误。这是我的代码:
php artisan make:migration add_title_to_tasks_table --table="tasks"
然后添加了此代码
Schema::table('tasks', function (Blueprint $table) {
$table->string('title');
});
创建新表文件
答案 0 :(得分:2)
要更改表格并添加列。
/**
* Run the migrations.
*
* @return void
*/
public function up() {
Schema::table('tasks', function (Blueprint $table) {
$table->string('title')->after('id');
// to change column datatype or change it to `nullable`
// or set default values , this is just example
$table->string('title')->default('Test')->change();
});
}
您可以在此处引用文档,Laravel Migration
答案 1 :(得分:1)
对于那些不熟悉laravel并寻求解决方案的人,请按照以下步骤操作
1)。 php artisan make:migration add_title_to_tasks_table --table="tasks"
2)。在迁移文件夹中编辑新创建的文件,然后添加以下内容。
public function up() {
Schema::table('tasks', function (Blueprint $table) {
$table->string('title')->after('id');
// to change column datatype or change it to `nullable`
// or set default values , this is just example
$table->string('title')->default('Test')->change();
});
}
3)。运行迁移命令。
php artisan migrate
答案 2 :(得分:0)
执行以下操作:
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('tasks', function (Blueprint $table) {
$table->string('title')->after('your-column-name');
});
}
替换你的专栏名称'使用您现有的列名。
保存文件。从终端执行:
php artisan migrate
上面的命令会将列添加到您的表中。
您收到该错误是因为您没有运行migrate
命令。
无论何时创建迁移文件,都必须执行上述命令才能查看数据库表中的更改。
此外,如果模型$fillable
属性中不存在新列,则还必须将其添加到那里。
/**
* The attributes that are mass assignable.
*
* @return array
*/
protected $fillable = [
'title', // <-- new column name
// .. other column names
];
未能更新$fillable
属性将导致MassAssignmentExecption
希望这会帮助你。快乐的编码。欢呼声。