我正在执行一个简单的插入操作,我已多次执行此操作而没有任何问题,并且由于某些奇怪的原因它无法正常工作,我收到此错误消息:
error: {type: "ErrorException", message: "Array to string conversion",…}
file: "C:\wamp\www\studentreg2\vendor\laravel\framework\src\Illuminate\Database\Grammar.php"
line: 33
message: "Array to string conversion"
type: "ErrorException"
这是我的代码:
$advisorCheck = AdvisorCheck::create([
'status' => Input::get('status'),
'application_id' => Input::get('id'),
'user_id' => Auth::id()
]);
AdvisorCheck模型使用的advisor_check表的迁移似乎很好,所有外键都是无符号的并且在phpmyadmin中正确显示关系,Input :: get中的所有值都是字符串,模型将正确的字段设置为可填充( status,application_id,user_id)。
我甚至试图在php artisan tinker
这样做:
AdvisorCheck::create([ 'status' => 'returned', 'application_id' => '3', 'user_id' => '4']);
我得到了这个回复: 数组到字符串转换
我也试过这种方法并得到同样的错误:
$advisorCheck = new AdvisorCheck;
$advisorCheck->status = Input::get('status');
$advisorCheck->application_id = Input::get('id');
$advisorCheck->user_id = Auth::id();
$advisorCheck->save();
型号代码:
<?php
class AdvisorCheck extends \Eloquent {
protected $fillable = ['status', 'application_id', 'user_id'];
protected $table = ['advisor_check'];
}
如果您需要查看更多代码,请询问。
非常感谢能够提供帮助的任何人!
答案 0 :(得分:14)
正如您在Laravel docs中显示的示例中所示,table属性是字符串而不是数组
protected $table = 'advisor_check';
如果你仔细考虑一下,这是完全有道理的,因为Eloquent模型本身不支持多个表。
答案 1 :(得分:2)
$table
应该是一个字符串而不是数组
<?php
class AdvisorCheck extends \Eloquent {
protected $fillable = ['status', 'application_id', 'user_id'];
protected $table = 'advisor_check';
}