为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中提交帖子 - 找不到两分钟的数字

在 Laravel 中提交帖子 - 找不到两分钟的数字

PHP
有只小跳蛙 2021-10-22 14:10:07
我正在尝试提交一篇简单的博客文章。我使用请求对象作为 DTO 传递数据。public function store(CreateBlogRequest $createBlogRequest){    $user = User::find(1);    $post = $user->posts()->create([$createBlogRequest]);}我收到以下错误:"message": "发现意外数据。\n发现意外数据。\n发现意外数据。\n找不到两位数的分钟\n找不到两位数的秒\n尾随数据"但是,当我将数据作为标准数组传递时,它运行良好。public function store(Request $request){    $user = User::find(1);    $post = $user->posts()->create(['title' => $request->title, 'slug' => $request->slug, 'body' => $request->body]);}岗位模型class Post extends Model{    protected $guarded = [];    protected $dates = ['created_at','updated_at'];    protected $dateFormat = 'Y-m-d H:i:s';     public function user()    {        return $this->belongsTo('App\User');    }}知道这里有什么问题吗?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

你不能只传递请求对象(你也把它包装在一个数组中)。该create()方法需要一个关联数组。

相反,您可以执行在第二个示例中所做的操作。或者像这样:

$post = $user->posts()->create($createBlogRequest->input());

或更明确(更安全):

$post = $user->posts()->create($createBlogRequest->only(['title', 'slug', 'body']));

不过,您可能需要创建字段$fillable


查看完整回答
反对 回复 2021-10-22
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信