Current File : /home/masbinta/public_html/core/app/Http/Controllers/Admin/DynamicpageController.php |
<?php
namespace App\Http\Controllers\Admin;
use App\Helpers\Helper;
use App\Models\Language;
use App\Models\Daynamicpage;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class DynamicpageController extends Controller
{
public $lang;
public function __construct()
{
$this->lang = Language::where('is_default',1)->first();
}
public function dynamic_page(Request $request){
$lang = Language::where('code', $request->language)->first()->id;
$dynamicpages = Daynamicpage::where('language_id', $lang)->orderBy('id', 'DESC')->get();
return view('admin.dynamicpage.index', compact('dynamicpages'));
}
public function add(){
return view('admin.dynamicpage.add');
}
public function store(Request $request){
$slug = Helper::make_slug($request->title);
$dynamicpages = Daynamicpage::select('slug')->get();
$request->validate([
'title' => [
'required',
'unique:daynamicpages,title',
'max:255',
function($attribute, $value, $fail) use ($slug, $dynamicpages){
foreach($dynamicpages as $dynamicpage){
if($dynamicpage->slug == $slug){
return $fail('Title already taken!');
}
}
}
],
'body' => 'required',
'serial_number' => 'required',
'status' => 'required',
'language_id' => 'required',
]);
$dynamicpage = new Daynamicpage();
$dynamicpage->language_id = $request->language_id;
$dynamicpage->title = $request->title;
$dynamicpage->slug = $slug;
$dynamicpage->body = $request->body;
$dynamicpage->status = $request->status;
$dynamicpage->serial_number = $request->serial_number;
$dynamicpage->meta_keywords = $request->meta_keywords;
$dynamicpage->meta_description = $request->meta_description;
$dynamicpage->save();
$notification = array(
'messege' => 'Daynamic Page Added successfully!',
'alert' => 'success'
);
return redirect()->back()->with('notification', $notification);
}
public function edit($id){
$dynamicpage = Daynamicpage::find($id);
return view('admin.dynamicpage.edit', compact('dynamicpage'));
}
public function update(Request $request, $id){
$slug = Helper::make_slug($request->title);
$dynamicpages = Daynamicpage::select('slug')->get();
$dynamicpage = Daynamicpage::findOrFail($id);
$request->validate([
'title' => [
'required',
'max:255',
function($attribute, $value, $fail) use ($slug, $dynamicpages, $dynamicpage){
foreach($dynamicpages as $blg){
if($dynamicpage->slug != $slug){
if($blg->slug == $slug){
return $fail('Title already taken!');
}
}
}
},
'unique:daynamicpages,title,'.$id
],
'body' => 'required',
'serial_number' => 'required',
'status' => 'required',
'language_id' => 'required',
]);
$dynamicpage->language_id = $request->language_id;
$dynamicpage->title = $request->title;
$dynamicpage->slug = $slug;
$dynamicpage->body = $request->body;
$dynamicpage->status = $request->status;
$dynamicpage->serial_number = $request->serial_number;
$dynamicpage->meta_keywords = $request->meta_keywords;
$dynamicpage->meta_description = $request->meta_description;
$dynamicpage->save();
$notification = array(
'messege' => 'Daynamic Page Updated successfully!',
'alert' => 'success'
);
return redirect(route('admin.dynamic_page').'?language='.$this->lang->code)->with('notification', $notification);
}
public function delete($id){
$dynamicpage = Daynamicpage::find($id);
$dynamicpage->delete();
return back();
}
}