在我创建新帖子后的控制器中,我在帖子变量中返回新帖子。出于某种原因,我没有取回具有默认值的属性。我注意到,如果我将值设置为控制器中的某个值,它确实会返回有效负载中的属性。
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,
]);
}
Run Code Online (Sandbox Code Playgroud)
你可以说 Laravel 就是这样工作的。新创建的对象中不存在数据库层中定义的默认值。但是,您可以refresh在返回之前使用刷新对象。然后它将具有缺失值。
$post = new Post();
$post->attribute = $request->attribute;
$post->save();
$post = $post->refresh();
return $post;
Run Code Online (Sandbox Code Playgroud)
或者您可以在模型层中设置默认值
protected $attributes = [
'isVisible' => false
];
Run Code Online (Sandbox Code Playgroud)
并且在返回新创建的对象时您将拥有默认值。
| 归档时间: |
|
| 查看次数: |
1048 次 |
| 最近记录: |