Viewing file: KeywordGroupController.php (3.45 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Customer;
use App\Http\Controllers\Controller; use App\Models\Keyword; use App\Models\KeywordGroup; use Illuminate\Http\Request;
class KeywordGroupController extends Controller {
public function index() {
$data['keywords']=auth('customer')->user()->keywords; return view('customer.keyword_group.index', $data); }
public function getAll() {
$keyword_groups = auth('customer')->user()->keyword_groups()->orderByDesc('created_at');
return datatables()->of($keyword_groups)
->addColumn('name', function(KeywordGroup $q) {
return $q->name; }) ->addColumn('keyword', function(KeywordGroup $q) { $keyword=Keyword::whereIn('id', json_decode($q->keyword_ids))->pluck('word')->toArray();
return implode(',', $keyword); }) ->addColumn('action',function(KeywordGroup $q){ $keyword=Keyword::whereIn('id', json_decode($q->keyword_ids))->pluck('word')->toArray(); $explode_keys= implode(',', $keyword);
return "<a class='btn btn-sm btn-info edit_data' data-id='".$q->id."' data-keywords='".$explode_keys."' data-name='".$q->name."' data-status='".$q->status."' href='#'>Edit</a> ". '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this keyword group?" data-action='.route('customer.keyword.group.delete',[$q]).' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button>' ; }) ->rawColumns(['name','keyword','action']) ->toJson(); }
public function store(Request $request) { $request->validate([ 'name'=>'required', 'keywords'=>'required' ]);
$all_keywords=explode(',', $request->keywords);
$keyword_ids=[]; if($all_keywords){ foreach($all_keywords as $all_keyword){ $keyword = Keyword::updateOrCreate( ['word' => $all_keyword, 'customer_id'=>auth('customer')->user()->id], ['word' => $all_keyword, 'customer_id' => auth('customer')->user()->id] ); $keyword_ids[]=$keyword->id; } }
if($request->id){ $keyword_group= KeywordGroup::findOrFail($request->id); }else{ $keyword_group= new KeywordGroup(); $keyword_group->customer_id=auth('customer')->user()->id; }
$keyword_group->name=$request->name; $keyword_group->status=$request->status; $keyword_group->keyword_ids=json_encode($keyword_ids); $keyword_group->save();
if($request->id) { return redirect()->back()->with('success', 'Keyword Group Successfully Updated'); }else { return redirect()->back()->with('success', 'Keyword Group Successfully Created'); }
}
public function delete($id){
$group= auth('customer')->user()->keyword_groups()->where('id', $id)->firstOrFail(); if($group->keyword_ids){ Keyword::whereIn('id', json_decode($group->keyword_ids))->delete(); }
$group->delete();
return redirect()->back()->with('success', 'Keyword successfully deleted'); } }
|