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:
JavaScript
x
$check = Category::withCount('posts')->first();
if($cheсk->posts_count < 1){
return redirect()->back()->with('warning', 'No posts in this category!');
}
Or:
JavaScript
if(Category::withCount('posts') < 1){
return redirect()->back()->with('warning', 'No posts in this category!');
}
Category model:
JavaScript
class Category extends Model
{
use HasFactory;
protected $fillable = [
'name',
'user_id',
'code',
'img'
];
public function posts(){
return $this->hasMany(Post::class);
}
}
Advertisement
Answer
JavaScript
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.