类型错误:传递给Illuminate \ Database \ Eloquent \ Builder :: create()的参数1必须是数组类型,给出null

时间:2017-11-07 09:21:26

标签: php laravel-5 laravel-eloquent

我想在laravel rest api中发布标题和文章我收到此错误

  

类型错误:参数1传递给   Illuminate \ Database \ Eloquent \ Builder :: create()必须属于该类型   数组,null给定,调用   C:\ XAMPP \ htdocs中\ LaravelProject \ cpapi \供应商\ laravel \框架的\ src \照亮\数据库\雄辩\ Model.php   在第1440行

这是我的发布文章数据的路径/ api.php文件

Route::post('articles', 'ArticleController@store');

Route::post('articles', function(Request $request) {
   return Article::create($request->all);
});

这是ArticleController.php文件的存储功能

 public function store(Request $request)
    {
        $article = Article::create($request->all());

        return response()->json($article, 201);
    }

这是文章模型类

class Article extends Model
{
    //new
    protected $fillable = ['title', 'body'];
}

我尝试在articlecontroller文件中更改此内容但得到相同的错误

$article = Article::create($request->only([
            'title',
            'body']));

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如#Masivuye_Cokile建议我一样,我在路由和控制器功能中修改了我的代码,这解决了我的问题。

路线/ api.php

Route::post('articles', function(Request $request) {
    $data = $request->all();
        return Article::create([
            'title' => $data['title'],
            'body' => $data['body'],
        ]);
});

在控制器功能

 public function store(Request $request)
    {
       $article = Article::save();
       return response()->json($article, 201);
    }