Skip to content
Advertisement

Redirect if there are no posts in the category Laravel

I want to redirect users back if they have selected a category that has no posts. I’ve tried something like this, but it doesn’t work:

$check = Category::withCount('posts')->first();
if($cheсk->posts_count < 1){
    return redirect()->back()->with('warning', 'No posts in this category!');
  }

Or:

if(Category::withCount('posts') < 1){
    return redirect()->back()->with('warning', 'No posts in this category!');
  }

Category model:

class Category extends Model
{
    use HasFactory;

    protected $fillable = [
        'name',
        'user_id',
        'code',
        'img'
    ];

    public function posts(){
      return $this->hasMany(Post::class);
    }
}

Advertisement

Answer

You can use following code:
$isCategoryHasPosts = Category::where('id','<specify_category_id>')->has('posts')->count();
if(!$isCategoryHasPosts) {
    return redirect()->back()->with('warning', 'No posts in this category!');
}

Note: replace specify_category_id with your actual category Id.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement