我一直在关注Laravel-5基础知识的https://laracasts.com系列,我对这一切都不熟悉,MySQL和框架......
我使用过' php artisan tinker'命令更改列的属性。 但我做了一个拼写错误并输入了'event_desciption'而不是' event_description' 现在每当我尝试使用$ events-> save();它给出了错误。
我给的列名称:
$table->increments('id');
$table->string('event_name');
$table->integer('cost');
$table->text('event_description');
$table->text('terms_and_condition');
$table->string('organized_by');
$table->timestamps();
$table->timestamp('published_at');
我在创建事件对象时犯的错误.. $事件;
$events;
=> App\event {#627
event_name: "My first evenr name",
cost: 20,
>event_desciption: " the event description",
terms_and_condition: " our terms and condition",
organized_by: "organized by us",
published_at: Carbon\Carbon {#634
+"date": "2016-06-07 20:17:44.000000",
+"timezone_type": 3,
+"timezone": "UTC",
},
updated_at: "2016-06-07 20:19:54",
created_at: "2016-06-07 20:19:54,
它给出的错误:
$事件 - >保存(); Illuminate \ Database \ QueryException with message' SQLSTATE [42S22]:找不到列:1054未知列' event_desciption'在'字段列表' (SQL:插入
events
(event_name
,cost
,event_desciption
,terms_and_condition
,organized_by
,published_at
,{{1 }},updated_at
)值(我的第一个名字,20,事件描述,我们的条款和条件,由我们组织,2016-06-07 20:17:44,2016-06-07 20:19 :54,2016-06-07 20:19:54))'
如何更改列名而不创建另一个对象来执行相同的操作?
谢谢你:)
答案 0 :(得分:1)
要重命名列,可以在Schema上使用renameColumn方法 建设者。在重命名列之前,请务必添加doctrine / dbal 依赖于您的composer.json文件。
Schema::table('users', function($table) { $table->renameColumn('from', 'to'); });
这是以下页面的引用:
https://laravel.com/docs/5.0/schema#renaming-columns
因此,在您的情况下,您将要将该行代码更改为:
$table->renameColumn('event_desciption', 'event_description');
编辑:
如果表架构正确,您可能在对象中添加了错误的名称。将名为$events
的{{1}}对象的属性更改为event_desciption
。
您可以通过在event_description
:
php artisan tinker