我有一个链接可以发布处于草稿状态的帖子(帖子表中的stats ='D'):
<a href="{{route('posts.publish', ['id' => $post->id])}}">Publish</a>
我为此链接创建了一条路线:
Route::get('post/{id}/publish', [ 'uses' => 'PostsController@publish', 'as'=>'posts.publish']);
当链接“发布”时,代码将转到PostsController的publish()。在此方法中,必须验证发布的所有必填字段是否都不为空。如果它们为空,则不应该发布该帖子,它应该显示一条消息,通知用户在发布该帖子之前需要引入必填字段(名称,类别,图像,内容等)。否则应发布该帖子,即状态应从“ D”更新为“ P”。你知道如何实现吗?是否有必要使用帖子ID进行查询并检查每个必填字段(如果不为null)?
public function publish($id)
{
dd($id);
}
答案 0 :(得分:0)
我假设您在检查publish
列草稿状态stats
列后显示D
按钮
所以像这样使用
public function publish($id)
{
$p = DB::table('posts')->where('id',$id)->first();
if($p->name && $p->categories && $p->image && $p->content){
$p->stats = 'P';
$p->save();
return redirect('/posts')->with("message","Updated Successfully!!");
}else{
return redirect()->back()->with("message","Name, Categories, Image Or Content is blank!!");
}
}
答案 1 :(得分:-1)
非常简单
public function publish($id)
{
$check_post_status = Db::table('posts')->where('id','=',$id)
->value('stats');
if($check_post_status === 'D')
{
return redirect()->back()
->with('flash_message','Post is not published yet');
}
$post = Db::table('posts')->where('id','=',$id)->get();
return $post;
}
希望您得到了答案