错误:array_flip()期望参数1为数组,给定字符串

Aar*_*ron 3 php laravel

我是Laravel的新手,收到以下错误,

array_flip()期望参数1是数组,给定字符串

in GuardsAttributes.php line 188
at HandleExceptions->handleError(2, 'array_flip() expects parameter 1 to be array, string given', '/Users/aaronmk2/Desktop/CodingDojo/php/onetoone/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php', 188, array('attributes' => array('name' => '2250 nw 59st Seattle, WA 98107')))
at array_flip('name') in GuardsAttributes.php line 188
at Model->fillableFromArray(array('name' => '2250 nw 59st Seattle, WA 98107')) in Model.php line 216
at Model->fill(array('name' => '2250 nw 59st Seattle, WA 98107')) in Model.php line 145
at Model->__construct(array('name' => '2250 nw 59st Seattle, WA 98107')) in web.php line 24
Run Code Online (Sandbox Code Playgroud)

这是创建问题的代码

Route::get('/insert', function(){
    $user = User::findOrFail(1);

    $address = new Address(['name' => '2250 nw 59st Seattle, WA 98107']);

    $user->address()->save( $address);
});
Run Code Online (Sandbox Code Playgroud)

问题是什么?如何解决?

Ale*_*nin 5

如果您将查看5.4源代码,您将看到发生此错误,因为您已将$fillable属性定义为字符串,如:

protected $fillable = 'name';
Run Code Online (Sandbox Code Playgroud)

但它应该是一个数组:

protected $fillable = ['name'];
Run Code Online (Sandbox Code Playgroud)