首页 > 解决方案 > 仅当必填字段存储在 db 中时才发布帖子

问题描述

我有一个发布处于草稿状态的帖子的链接(帖子表中的统计信息 = 'D'):

<a href="{{route('posts.publish', ['id' => $post->id])}}">Publish</a>

我为此链接创建了一条路线:

Route::get('post/{id}/publish', [ 'uses' => 'PostsController@publish', 'as'=>'posts.publish']);

当链接“发布”时,代码转到 PostsController 发布()。在此方法中,有必要验证要发布的帖子的所有必填字段是否不为空。如果它们为空,则不应发布帖子,应显示一条消息,通知用户在发布帖子之前需要引入必填字段(名称、类别、图像、内容等)。否则应该发布帖子,即状态应该从“D”更新为“P”。你知道如何实现吗?是否有必要使用帖子 ID 进行查询并检查每个必填字段是否不为空?

public function publish($id)
{
    dd($id);
}

标签: phplaravel

解决方案


我假设您在检查草稿状态的列publish后显示按钮statsD

所以像这样使用

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!!");
    }
}

推荐阅读