Skip to content

Instantly share code, notes, and snippets.

@cygeorgel
Created April 24, 2020 06:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cygeorgel/9550887eed33e3ebecb36358bfe0dda9 to your computer and use it in GitHub Desktop.
Save cygeorgel/9550887eed33e3ebecb36358bfe0dda9 to your computer and use it in GitHub Desktop.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class NewsletterListController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
private $names = [
'model' => \App\NewsletterList::class,
'singular' => 'newsletterList',
'plural' => 'newsletterLists',
];
private function updateRules()
{
return [
];
}
private function storeRules()
{
return array_merge($this->updateRules(), [
]);
}
public function index()
{
$names = $this->names;
$elements = $this->names['model']::all();
return view('admin.'.$names['plural'].'.index', compact('names', 'elements'));
}
public function create()
{
$names = $this->names;
return view('admin.'.$names['plural'].'.create', compact('names'));
}
public function store(Request $request)
{
$this->validate(request(), $this->storeRules());
$data = $request->all();
$this->names['model']::create($data);
return redirect('admin/'.$this->names['plural'])->withSuccess(__('app.successStore'));
}
public function show($id)
{
$names = $this->names;
$element = $names['model']::find($id);
return view('admin.'.$this->names['plural'].'.show', compact('element', 'names'));
}
public function edit($id)
{
$names = $this->names;
$element = $names['model']::find($id);
return view('admin.'.$this->names['plural'].'.edit', compact('element', 'names'));
}
public function update(Request $request, $id)
{
$this->validate(request(), $this->updateRules());
$element = $this->names['model']::find($id);
$data = $request->all();
$element->update($data);
return redirect('admin/'.$this->names['plural'])->withSuccess(__('app.successUpdate'));
}
public function destroy($id)
{
$element = $this->names['model']::find($id);
$element->delete();
return back()->withSuccess(__('app.successDestroy'));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment