在创建新帖子后,在控制器中,我将新帖子返回到post变量中。由于某种原因,我没有获得具有默认值的属性。我注意到,如果我将值设置为控制器中的某个值,则确实会返回有效负载中的属性。
public function create(Request $request)
{
$validatedData = $request->validate(PostValidator::$create);
$post = new Post();
$post->postcategory_id = $request->input('postcategoryid');
$post->user_id = $request->input('authorid');
$post->thumbnail = $this->uploadFile($request, 'thumbnail', config('app.defaultImage'));
$post->video = $request->input('video');
$post->slug = $this->slugify($request->input('title'));
$post->url = '/publicaciones/'.$this->slugify($request->input('title'));
$post->title = $request->input('title');
$post->body = $request->input('body');
$post->isVisible = false; //IF I DO THIS isVisible is returned in $post variable
$post->save();
$post->load(['postcategory','author']);
return response()->json([
'post' => $post,
]);
}
答案 0 :(得分:1)
您可以说laravel就是这样。新创建的对象中没有数据库层中定义的默认值。但是,您可以使用refresh
刷新对象,然后再返回。然后它将缺少值。
1
或者您可以在模型层中设置默认值
$post = new Post();
$post->attribute = $request->attribute;
$post->save();
$post = $post->refresh();
return $post;
,并且在返回新创建的对象时将具有默认值。