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.