141 lines
3.9 KiB
PHP
141 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\admin;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\Template;
|
|
use App\Models\Type;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Validator;
|
|
use Mockery\Exception;
|
|
|
|
class TemplateController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
$template = Template::with('Type')->orderBy('type_id')->simplePaginate(20);
|
|
$title = "List email template";
|
|
|
|
return view('admin.template.index', compact('template', 'title'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$title = "Add new email template";
|
|
|
|
$type = Type::select('name', 'id')->get();
|
|
|
|
return view('admin.template.add', compact('title', 'type'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$request->validate([
|
|
'type_id' => 'required',
|
|
'name' => 'required',
|
|
'subject' => 'required',
|
|
'message' => 'required'
|
|
]);
|
|
try {
|
|
DB::beginTransaction();
|
|
Template::create($request->all());
|
|
DB::commit();
|
|
} catch (Exception $exception) {
|
|
DB::rollBack();
|
|
return back()->withErrors($exception->getMessage());
|
|
}
|
|
return redirect()->route('template.index')->with('success', 'Add hew template success');
|
|
}
|
|
|
|
public function edit(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'id' => 'numeric|required|not__in:0'
|
|
], [
|
|
'id' => [
|
|
'required' => 'Please choose Template'
|
|
]
|
|
]);
|
|
|
|
if ($validator->fails()) {
|
|
return back()->withErrors($validator);
|
|
}
|
|
|
|
$template = Template::find($request->id);
|
|
|
|
if (!$template) {
|
|
return back()->withErrors('Invalidate request');
|
|
}
|
|
|
|
$title = "View email template";
|
|
|
|
$type = Type::select('name', 'id')->get();
|
|
|
|
return view('admin.template.edit', compact('title', 'type', 'template'));
|
|
}
|
|
public function update(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(),
|
|
[
|
|
'type_id' => 'required',
|
|
'name' => 'required',
|
|
'subject' => 'required',
|
|
'status' => 'required',
|
|
'message' => 'required',
|
|
'id' => 'numeric|required|not__in:0'
|
|
],
|
|
[
|
|
'id' => [
|
|
'required' => 'Please choose Template'
|
|
]
|
|
]
|
|
);
|
|
|
|
if ($validator->fails()) {
|
|
return back()->withErrors($validator);
|
|
}
|
|
|
|
$template = Template::find($request->id);
|
|
|
|
if (!$template) {
|
|
return back()->withErrors('Invalidate request');
|
|
}
|
|
try {
|
|
DB::beginTransaction();
|
|
$template->update($request->except(['id','_token','_method']));
|
|
DB::commit();
|
|
} catch (\Exception $error)
|
|
{
|
|
DB::rollBack();
|
|
return back()->withErrors($error->getMessage());
|
|
}
|
|
return redirect()->route('template.index')->with('success','Update new information for template');
|
|
}
|
|
public function destroy(Request $request)
|
|
{
|
|
$validator = Validator::make($request->all(), [
|
|
'id' => 'numeric|required|not__in:0'
|
|
], [
|
|
'id' => [
|
|
'required' => 'Please choose Template'
|
|
]
|
|
]);
|
|
if ($validator->fails()) {
|
|
return back()->withErrors($validator);
|
|
}
|
|
|
|
$template = Template::find($request->id);
|
|
|
|
if (!$template) {
|
|
return back()->withErrors('Invalidate request');
|
|
}
|
|
if (in_array($request->id,[]))
|
|
{
|
|
return back()->withErrors('Invalidate request');
|
|
}
|
|
$template->detele();
|
|
return back()->with('success','Delete success');
|
|
}
|
|
}
|