Viewing file: PageController.php (3.33 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Models\Page; use Illuminate\Http\Request; use Illuminate\Support\Str;
class PageController extends Controller { public function index() { return view('admin.createPage.index'); } public function create() { return view('admin.createPage.create'); } public function store(Request $request) {
$request->validate([ 'name' => 'required|unique:pages,name', 'title' => 'required|unique:pages,title', 'description' => 'required', 'status'=>'required|in:published,unpublished', 'position'=>'required|in:header,footer', ]); if(env('APP_DEMO')){ return redirect()->back()->with('fail','This feature is not available on demo mode'); } $request['url']=Str::slug($request->title , '-');
auth()->user()->pages()->create($request->all());
cache()->forget('pages');
return back()->with('success', 'Page successfully created'); } public function show(){ $pages = auth()->user()->pages()->select(['id','name','title','description','status','position']); return datatables()->of($pages) ->addColumn('description', function($q){ return "<div class='show-more' style='max-width: 500px;white-space: pre-wrap'> $q->description </div>"; }) ->addColumn('action', function ($q) { $btn='<div class="btn-group"> <button type="button" class="btn btn-success rounded" data-toggle="dropdown" aria-expanded="false"> <i class="fas fa-ellipsis-v"></i> </button> <div class="dropdown-menu" role="menu" style="">
<a class="dropdown-item" href='.route('admin.page.edit',[$q->id]).' >Edit</a> <button class="dropdown-item" data-message="Are you sure you want to delete this Page?" data-action='.route('admin.page.destroy',[$q]).' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button> </div> </div>'; return $btn; }) ->rawColumns(['action','description']) ->toJson(); } public function edit(Page $page){ $data['page']=$page; return view('admin.createPage.edit',$data); }
public function update(Page $page,Request $request){
$request->validate([ 'name' => 'required|unique:pages,name,'. $page->id, 'title' => 'required|unique:pages,title,'. $page->id, 'description' => 'required', 'status'=>'required|in:published,unpublished', 'position'=>'required|in:header,footer', ]); $request['url']=Str::slug($request->title , '-');
$page->update($request->all()); cache()->forget('pages'); return back()->with('success','Page successfully updated'); } public function destroy(Page $page){ $page->delete(); cache()->forget('pages'); return back()->with('success','Page successfully deleted'); }
}
|