【发布时间】:2018-04-19 15:06:50
【问题描述】:
我正在尝试在 laravel rest api 中发布标题和文章我收到此错误
类型错误:参数 1 传递给 Illuminate\Database\Eloquent\Builder::create() 必须是类型 数组,给定空值,调用 C:\xampp\htdocs\LaravelProject\cpapi\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php 在线 1440
这是我发布文章数据的 route/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']));
我该如何解决这个问题?
【问题讨论】:
-
在stackoverflow.com/questions/45059864/… 的答案中,
save()方法在没有 ant 参数的情况下使用并且有效,您是否尝试在没有任何参数的情况下使用您的create()? -
我把它改成了这样 $data = $request->all(); $article = Article::create([ 'title' => $data['title'], 'body' => $data['body'], ]);返回响应()->json($article, 201);但我仍然遇到同样的错误
-
谢谢@MasivuyeCokile 我解决了。
标签: php laravel-5 laravel-eloquent