Create Conroller
Copy Below Code
View As A Text File
Show Text Only
Show API
Edit Code
<?php
namespace App\Http\Controllers\Back;
use App\Models\Back\AdminAlert;
use App\User;
use App\Models\Back\{modalName};
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Http;
use App\Helpers\RestApiHelper;
class {controllerName} extends Controller
{
public $settingArr = array(
'mainTitle' => '$controllerSingleTitle',
'mainPageTitle' => '$controllerTitle',
'contr_name' => '$webRoute',
'file' => '',
'view_add' => 'add_ajax',
'view_edit' => 'edit_ajax',
'view_main' => 'index_view',
'dbName' => '',
'dbId' => 'id',
'folder' => 'common',
'baseImg' => '/',
'dbStatus' => 'id',
'db_order_pageTitle' => 'id',
'db_order_key' => 'id',
'add_func' => true,
'edit_func' => true,
'delete_func' => true,
'order_func' => false,
'duplicate_func' => true,
'listing_func' => true,
'search_func' => true,
'detail_func' => true,
'invoice_func' => true,
'conver_order_func' => false,
'action_func' => true,
't_img_w' => '370',
't_img_h' => '250',
);
public $arrFAdd = array( //index view page
'error' => ['Error', 'code', ''
],
'file' => ['File', '', ''
],
'priority' => ['Priority', 'dd_priority', ''],
);
public $arrFEdit = array( //index view page
'error' => ['Error', 'code', ''
],
'file' => ['File', '', ''],
'priority' => ['Priority', 'dd_priority', ''],
);
public $arrFIndex = array( //index view page
'id' => ['ID', '', ''],
'error' => ['Error', 'code', ''],
'file' => ['File', 'code', ''],
'priority' => ['Priority', 'dd_priority', ''],
'dated' => ['Date', 'datetime', ''],
);
public $arrShow = array( //Show
'error' => ['Error', 'code', ''],
'file' => ['File', 'code', ''],
'priority' => ['Priority', 'dd_priority', ''],
);
public $arrSearch = array( //index view page
'error' => ['Error', 'code', ''
],
'file' => ['File', '', ''],
'priority' => ['Priority', 'dd_priority', ''],
);
public $arrOrder = array(
'pageTitle' => array('Title', 'pageTitle', '')
);
public function __construct()
{
}
public function index(Request $request)
{
$pageTitle = $this->settingArr['mainPageTitle'];
$msg = '';
$searchDataArrAll = $_GET;
$queryObj = $modalName::where($this->settingArr['dbId'], '<>', '0');
$this->QuickActions();
$searchDataArr = [];
$searchFilter = false;
if (isset($_GET['sr']) && $_GET['sr'] == 'y') {
$searchFilter = true;
$searchDataArr = filter_search_param($_GET, $this->arrSearch);
if (sizeof($searchDataArr) > 0) {
foreach ($searchDataArr as $key => $value) {
if(!in_array($key,['export']))
{
if ($this->settingArr['dbId'] == $key) {
$queryObj->where($key, $value);
} else {
$queryObj->where($key, 'like', '%' . $value . '%');
}
}
}
}
}
// $queryObj->orderBy($this->settingArr['dbId'], 'DESC');
$queryObj->orderBy('id', 'DESC');
if($request->export!=''){
$objExport = $queryObj->get();
$this->exportMe($request->export, $objExport, $request);
}
$result = $queryObj->paginate(20);
$result->appends($searchDataArrAll);
$settingArr = $this->settingArr;
$arrSearch = $this->arrSearch;
$dataArr = $this->arrFIndex;
$idf = $this->settingArr['dbId'];
$stsArr = [];
return view('back.auto.'.$this->settingArr['folder'].'.index', compact('pageTitle', 'msg', 'result', 'settingArr', 'arrSearch', 'dataArr', 'idf', 'searchDataArr', 'stsArr', 'searchFilter'));
}
public function set_order()
{
$pageTitle = $this->settingArr['mainPageTitle'];
$msg = '';
$result = $modalName::orderBy($this->settingArr['db_order_key'], 'asc')->get();
$settingArr = $this->settingArr;
$arrSearch = $this->arrSearch;
$dataArr = $this->arrOrder;
$idf = $this->settingArr['dbId'];
return view('back.auto.'.$this->settingArr['folder'].'.order', compact('pageTitle', 'msg', 'result', 'settingArr', 'arrSearch', 'dataArr', 'idf'));
}
public function update_order(Request $request)
{
if ($this->settingArr['order_func'] == false) {
echo 'ERROR';
exit;
}
//echo '<pre>';print_r($_POST);echo '</pre>';exit;
$action = $request->action;
$updateRecordsArray = $request->recordsArray;
if ($action == "updateRecordsListings") {
$listingCounter = 1;
foreach ($updateRecordsArray as $recordIDValue) {
$oderf = $this->settingArr['db_order_key'];
$dbObj = $modalName::find($recordIDValue);
$dbObj->$oderf = $listingCounter;
$dbObj->save();
$listingCounter = $listingCounter + 1;
}
}
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$this->setModule($request);
$pageTitle = 'Create';
$settingArr = $this->settingArr;
$dataArr = $this->arrFAdd;
$settingArr = $this->settingArr;
return view('back.auto.'.$this->settingArr['folder'].'.create', compact('pageTitle', 'settingArr', 'dataArr'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->setModule($request);
unset($this->arrFAdd['file']);
$validationArr = Mod_convert_validation_arr($this->arrFAdd);
$validatord = Validator::make(
$request->all(),
$validationArr[0],
$validationArr[1]
);
if ($validatord->fails()) {
if ($request->ajax()) {
echo json_encode($validatord->errors());
exit;
} else {
return back()
->withErrors($validatord)
->withInput();
}
}
$dbObj = new $modalName;
foreach ($this->arrFAdd as $key => $value) {
$dbObj->$key = Mod_convert_db_value($request, $key, $value);
}
$dbObj->save();
echo json_encode(['success' => 'done']);
exit;
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show(Request $request,$id)
{
$pageTitle = $this->settingArr['mainTitle'] . ' Detail ';
$msg = '';
$row = $modalName::find($id);
$arrFields = $this->arrShow;
$settingArr = $this->settingArr;
return view('back.auto.'.$this->settingArr['folder'].'.show', compact('pageTitle', 'msg', 'row', 'settingArr', 'arrFields'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit(Request $request,$id)
{
$this->setModule($request);
$pageTitle ='Edit '.$this->settingArr['mainTitle'];
$row = $modalName::find($id);
$settingArr = $this->settingArr;
$dataArr = $this->arrFEdit;
$idf = $this->settingArr['dbId'];
return view('back.auto.'.$this->settingArr['folder'].'.edit', compact('pageTitle', 'settingArr', 'dataArr', 'row', 'idf'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->setModule($request);
$validationArr = Mod_convert_validation_arr($this->arrFEdit, $id);
$validatord = Validator::make(
$request->all(),
$validationArr[0],
$validationArr[1]
);
if ($validatord->fails()) {
echo json_encode($validatord->errors());
exit;
}
$dbObj = $modalName::find($id);
foreach ($this->arrFEdit as $key => $value) {
$dbObj->$key = Mod_convert_db_value($request, $key, $value);
}
$dbObj->save();
echo json_encode(array('success' => 'done'));
exit;
}
public function update_field(Request $request)
{
$settingArr = $this->settingArr;
if (isset($_POST['typ']) && $_POST['typ'] == 'revert') {
$postData = $request;
$html = view('back.auto.' . $this->settingArr['folder'] . '.popup', compact('postData'))->render();
$arr = ['success' => 'done', 'html' => $html, 'errormsg' => 'err', 'title' => 'Edit Title'];
echo json_encode($arr);
exit;
} else if (isset($_POST['typ']) && $_POST['typ'] == 'update_field') {
$postData = $request;
$key = $request->field;
$row = $modalName::findOrFail($request->idd);
$row->$key = $request->$key;
$row->save();
$this->update_field_other_data($key, $request->$key,$row);
$indexFields = $this->arrFIndex;
$html = '';
if (isset($indexFields[$key])) {
$html = ModTextBuild($row->$key, $indexFields[$key][1], '', $row);
}
$arr = ['success' => 'done', 'html' => '','idd'=> $request->idd, 'errormsg' => 'err', 'update_text' => $html, 'field' => $key];
echo json_encode($arr);
exit;
} else if (isset($_POST['typ']) && $_POST['typ'] == 'get_field') {
$postData = $request;
$key = $request->field;
$row = $modalName::findOrFail($request->idd);
$fieldArr = $this->arrFEdit[$key];
$fieldHtml = ModFieldBuild($fieldArr, $key, $row->$key, 'edit');
$titleF = ModFieldLabel($fieldArr[0] ?? '');
$html = view('back.auto.' . $this->settingArr['folder'] . '.popup', compact('postData', 'fieldHtml', 'settingArr', 'key', 'row'))->render();
$arr = ['success' => 'done', 'html' => $html, 'errormsg' => 'err', 'title' => 'Edit '. $titleF];
echo json_encode($arr);
exit;
} else {
echo 'ERROR';
exit;
}
}
public function edit_ajax(Request $request, $id)
{
$pageTitle = $this->settingArr['mainTitle'] . ' Detail ';
$msg = '';
$row = $modalName::find($id);
$arrFields = $this->arrFEdit;
$settingArr = $this->settingArr;
return view('back.auto.'.$this->settingArr['folder'].'.detail', compact('pageTitle', 'msg', 'row', 'settingArr', 'arrFields'));
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
if ($this->settingArr['delete_func'] == false) {
echo 'ERROR';
exit;
}
$obj = $modalName::findOrFail($id);
$modalName::where('id',$id)->delete();
return json_encode(array("status" => true));
}
public function pop(Request $request)
{
$settingArr = $this->settingArr;
if(isset($_POST['typ']) && $_POST['typ']=='block'){
$idd = (int)$_POST['idd'];
$objObject = Block::where('project_id',$idd)->get();
$selected= '<select id="project_block_id" class="form-control" name="project_block_id">';
$selected .= '<option value="">-Select-</option>';
foreach ($objObject as $key => $value) {
$selected .= '<option value="'. $value->id. '">' . $value->title . '</option>';
}
$selected.='</select>';
echo $selected;exit;
}else if(isset($_POST['typ']) && $_POST['typ'] == 'revert'){
$postData = $request;
$html= view('back.auto.' . $this->settingArr['folder'] . '.popup', compact('postData'))->render();
$arr = ['success' => 'done','html'=> $html,'errormsg'=>'err','title'=>'Edit Title'];
echo json_encode($arr);exit;
} else if (isset($_POST['typ']) && $_POST['typ'] == 'update_field') {
$postData = $request;
$key = $request->field;
$row = $modalName::findOrFail($request->idd);
$row->$key = $request->$key;
$row->save();
$indexFields = $this->arrFIndex;
$html = '';
if (isset($indexFields[$key])) {
$html = ModTextBuild($row->$key, $indexFields[$key][1], '', $row);
}
$arr = ['success' => 'done', 'html' => '', 'errormsg' => 'err', 'update_text'=> $html, 'field'=>$key];
echo json_encode($arr);
exit;
} else if (isset($_POST['typ']) && $_POST['typ'] == 'get_field') {
$postData = $request;
$key = $request->field;
$row = $modalName::findOrFail($request->idd);
$fieldArr = $this->arrFEdit[$key];
$fieldHtml = ModFieldBuild($fieldArr, $key, $row->$key, 'edit');
$html = view('back.auto.' . $this->settingArr['folder'] . '.popup', compact('postData', 'fieldHtml', 'settingArr','key','row'))->render();
$arr = ['success' => 'done', 'html' => $html, 'errormsg' => 'err', 'title' => 'Edit Title'];
echo json_encode($arr);
exit;
}
else {
echo 'ERROR';
exit;
}
}
private function update_field_other_data($key,$data,$row){
if($key=='sts'){
$this->update_field_sts_data($key,$data,$row);
}
}
private function update_field_sts_data($key, $data,$row)
{
//insertHistory($data)
}
private function QuickActions(){
if (isset($_GET['duplicate']) && $_GET['duplicate'] != '') {
$idd = (int) $_GET['duplicate'];
$oldObj = $modalName::find($idd);
$duplicateObj = $oldObj->replicate();
$duplicateObj->save();
return redirect(adminBase().'/'.$this->settingArr['contr_name'] . '/' . $duplicateObj->id . '/edit');
}
if (isset($_GET['up']) && $_GET['up'] != '') {
$idd = (int) $_GET['up'];
$Objs = $modalName::get();
foreach ($Objs as $order) {
$order->orderr = $order->orderr+1;
$order->save();
}
$obj = $modalName::find($idd);
$obj->orderr = 1;
$obj->save();
return redirect()->back();
}
if (isset($_GET['down']) && $_GET['down'] != '') {
$idd = (int) $_GET['down'];
$obj = $modalName::find($idd);
$obj->orderr = $modalName::max('orderr')+1;
$obj->save();
return redirect()->back();
}
if (isset($_GET['u_featured']) && $_GET['u_featured'] != '') {
$idd = (int) $_GET['u_featured'];
$obj = $modalName::find($idd);
$obj->featured = ($obj->featured=='1') ? '0' : '1';
$obj->save();
echo mod_response(true);
//return redirect()->back();
}
if (isset($_GET['upd_id']) && $_GET['upd_id'] != '') {
$idd = (int) $_GET['upd_id'];
$field = $_GET['upd_field'];
$obj = $modalName::find($idd);
$obj->$field = ($obj->$field == '1') ? '0' : '1';
$obj->save();
//return redirect()->back();
$indexFields = $this->arrFIndex;
$html='';
mod_response(true,'',['html'=>$html,'cval'=> $obj->$field]);
}
if (isset($_GET['duplicate']) && $_GET['duplicate'] != '') {
$idd = (int) $_GET['duplicate'];
$oldObj = $modalName::find($idd);
$duplicateObj = $oldObj->replicate();
$duplicateObj->save();
return redirect(adminBase().'/' . $this->settingArr['contr_name'] . '/' . $duplicateObj->id . '/edit');
}
}
function setModule($request){
if(dev_ips()){
$this->settingArr['add_func']=true;
}
return true;
}
}