File: /var/www/html/sarvodayahospital/app/Http/Controllers/BlogController.php
<?php
namespace App\Http\Controllers;
use App\Models\Blog;
use App\Models\CMSPage;
use App\Models\HindiBlog;
use App\Models\Speciality;
use Artesaos\SEOTools\Facades\OpenGraph;
use Artesaos\SEOTools\Facades\SEOMeta;
class BlogController extends Controller
{
public function index()
{
$category = request('speciality');
$q = request('q');
$seo = [];
$blogs = Blog::query()
->when($category, function ($query) use ($category) {
$query->whereHas('specialities', function ($speciality) use ($category) {
$speciality->where('Slug', $category);
});
})
->when($q, function ($query) use ($q) {
$query->whereHas('specialities', function ($speciality) use ($q) {
$speciality->where('SpecialityName', 'like', '%' .$q. '%');
})->orWhere('Title', 'like', '%' .$q. '%');
})
->orderBy('BlogCreatedDate', 'DESC')
->paginate(21);
$specialities = Speciality::query()
->whereHas('blogs')
->select('id', 'SpecialityName', 'Slug')
->get();
$cmsPage = CMSPage::query()
->where('Slug', request()->path())
->firstOrFail();
if ($cmsPage) {
$seo = $cmsPage->seoComponent()->first();
}
return view('pages.blog', compact('blogs', 'specialities', 'seo'));
}
public function show($slug)
{
$seo = [];
if ($slug == 'hi') {
$blogs = HindiBlog::query()
->orderBy('BlogCreatedDate', 'DESC')
->paginate(21);
$specialities = Speciality::query()
->whereHas('blogs')
->select('id', 'SpecialityName', 'Slug')
->get();
$cmsPage = CMSPage::query()
->where('Slug', 'blog')
->firstOrFail();
if ($cmsPage) {
$seo = $cmsPage->seoComponent()->first();
}
return view('pages.blog', compact('blogs', 'specialities', 'seo'));
}
if ($slug == 'en') {
return redirect()->route('blogs');
}
$blog = Blog::findBySlug($slug);
$blogsByDoctor = Blog::getDoctorBlog($blog->Doctor, $slug);
$recentBlogs = Blog::getRecentBlog(10);
if ($blog) {
$seo = $blog->seoComponent()->first();
}
return view('pages.single-blog', compact('blog', 'blogsByDoctor', 'recentBlogs', 'seo'));
}
public function hindiBlog($lang, $slug) {
$blog = HindiBlog::findBySlug($slug);
$blogsByDoctor = HindiBlog::getDoctorBlog($blog->Doctor, $slug);
$recentBlogs = HindiBlog::getRecentBlog(10);
if ($blog) {
$seo = $blog->seoComponent()->first();
}
return view('pages.single-blog', compact('blog', 'blogsByDoctor', 'recentBlogs', 'seo'));
}
}