我想通过API在我的数据库中创建一条新记录,但是我从Postman那里得到错误" message":#34;数组到字符串的转换(SQL:insert into ....)
API路线:
Route::post('/posts','PostController@store');
我的控制器中的商店功能:
public function store(Request $request)
{
$post= new Post;
$post->all = $request->all();
$post->save();
}
答案 0 :(得分:4)
首先,检查您的post#all
字段类型。如果是数据库字段 - 您只能设置相同类型的数据,例如对于字符串类型,您只能设置php字符串。
如果它不是归档但您想要将所有属性从请求设置为模型,则可以使用Model::create($request->all())
来完成。
但是,在这样做之前,您需要指定一个可填写的 所有Eloquent模型都保护模型或模型上的保护属性 反对大规模分配。
Source - 群众作业
换句话说,可以在模型fillable
中定义一个属性,该属性将是一个数组并包含可以批量分配的字段(以您的方式 - 来自请求的字段)。
最好使用$request->only()
并仅提供您要从请求中取出的数据,这样可以减少用户错误导致您出现问题的可能性,因为$request->all()
将包含任何问题输入数据,包括查询字符串。