Laravel-通过API将新记录存储在数据库中



我想通过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()将包含任何输入数据,包括查询字符串。

最新更新