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

我正在尝试提交一篇简单的博客文章。我使用请求对象作为 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');

    }

}

知道这里有什么问题吗?


有只小跳蛙
浏览 128回答 1
1回答

慕尼黑8549860

你不能只传递请求对象(你也把它包装在一个数组中)。该create()方法需要一个关联数组。相反,您可以执行在第二个示例中所做的操作。或者像这样:$post = $user->posts()->create($createBlogRequest->input());或更明确(更安全):$post = $user->posts()->create($createBlogRequest->only(['title', 'slug', 'body']));不过,您可能需要创建字段$fillable。
打开App,查看更多内容
随时随地看视频慕课网APP