php - 在 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');
}
}
知道这里有什么问题吗?
解决方案
你不能只传递请求对象(你也将它包装在一个数组中)。该create()
方法需要一个关联数组。
相反,您可以执行第二个示例中的操作。或者是这样的:
$post = $user->posts()->create($createBlogRequest->input());
或更明确(更安全):
$post = $user->posts()->create($createBlogRequest->only(['title', 'slug', 'body']));
不过,您可能需要制作这些字段$fillable
。
推荐阅读
- postgresql - postgresql 更改表序列 id 从给定值开始
- reactjs - 在 React Native 存储中上传图像时缺少参数“路径”
- kotlin - Kotlin 合约对另一个属性/功能的影响
- python - 如何更改字典的长度
- python - 在 Python 中将整数数组转换为二进制代码数组
- c# - 为什么我的 C# 代码没有正确中断?
- php - 如何通过 .htaccess 重定向所有 POST 请求?
- laravel - 上传图片时出现 Froala 405(不允许的方法) - Laravel
- oracle - 查找最受欢迎的汽车数量和租车总数
- android - 将一个android studio项目推送到GitHub上某个组织仓库的指定目录下