публиковать пост, только если обязательные поля хранятся в БД - PullRequest
0 голосов
/ 29 июня 2018

У меня есть ссылка для публикации поста с черновым статусом (статистика = '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». Вы знаете, как этого добиться? Требуется ли выполнить запрос с идентификатором поста и проверить каждое обязательное поле, если оно не равно нулю?

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

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Я полагаю, вы отображаете кнопку 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!!");
    }
}
0 голосов
/ 29 июня 2018

очень просто

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; 

}

Надеюсь, вы получили ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...