我想通过API在我的数据库中创建一个新记录,但我收到错误"消息":"数组到字符串的转换(SQL:插入到....)与邮递员相比
接口路由:
Route::post('/posts','PostController@store');
我的控制器中的存储功能:
public function store(Request $request)
{
$post= new Post;
$post->all = $request->all();
$post->save();
}
首先,检查您的post#all
字段类型。如果是数据库字段 - 你只能设置相同类型的数据,例如对于字符串类型,你可以只设置 php 字符串。
如果它不是归档,但您想设置从请求到模型的所有属性,您可以使用 Model::create($request->all())
.
但是,在这样做之前,您需要指定可填写的 或模型上的受保护属性,因为所有 Eloquent 模型都保护 默认情况下反对批量分配。
源 - 质量分配
换句话说,可以在模型fillable
中定义一个属性,该属性将是一个数组,并包含可批量分配的字段(以您的方式 - 来自请求的字段)。
使用 $request->only()
并仅提供要从请求中取出的数据,这将降低用户错误导致问题的可能性,因为$request->all()
将包含任何输入数据,包括查询字符串。