dongyao2022 2017-10-27 08:35
浏览 95
已采纳

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

I want to create a new record in my database through the API but i get the error "message": "Array to string conversion (SQL: insert into....) from Postman

API Route:

Route::post('/posts','PostController@store');

The store function in my controller:

public function store(Request $request)
    {


        $post= new Post;
        $post->all = $request->all();

        $post->save();

    }
  • 写回答

1条回答 默认 最新

  • dpkt31779 2017-10-27 08:51
    关注

    First, check your post#all field type. If it a database field - you can set only data of the same type, for example for string type you can set only php string.

    If it is not a filed but you want to set all attributes from request to model, you can do it with Model::create($request->all()).

    However, before doing so, you will need to specify either a fillable or guarded attribute on the model, as all Eloquent models protect against mass-assignment by default.

    Source - Mass Assignment

    In other words to may define a property in model fillable which will be an array and contains fields that will be mass assignable (in your way - fields from request).

    It might be better to use $request->only() and provide only the data you want to take out of the request, which will reduce the possibility of user errors causing you a problem, as $request->all() will include any input data, including the query string.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?