paginate(5); $search = request('keyword'); // Start the query builder $query = Models\DailyQuote::query(); // Apply search filters if a search term is present if ($search) { $query->where(function ($q) use ($search) { $q->where('quote', 'like', '%' . $search . '%') ->orWhere('author', 'like', '%' . $search . '%'); }); } // Paginate the results $quote_arr = $query->orderBy('created_at', 'DESC')->paginate(10); // 10 items per page // Append the search parameter to the pagination links // This is crucial for maintaining the search results when navigating pages if ($search) { $quote_arr->appends(['q' => $search]); } // Pass the paginated data to the view // return view('search_results', ['users' => $users, 'search' => $search]); $data = [ 'page_title' => 'Daily Quotes', 'quote_arr' => $quote_arr, 'search' => $search // 'current_user' => session('current_user') ]; // dump($data); // return view('daily_quotes.index', $data); return view('daily_quotes.index-raw', $data); } public function getDailyQuotesJson(Request $request) { #$this->log_query(); $quote_arr = \DB::table('daily_quotes') ->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'daily_quotes.added_by_id') ->select('daily_quotes.id', 'daily_quotes.author', 'daily_quotes.quote_date', 'daily_quotes.quote', 'daily_quotes.status', 'staffcreate.name As addedBy') ->orderBy('daily_quotes.quote', 'ASC') ->paginate(15); if($request->has('keyword')){ $queries = []; $keyword = $request->keyword; $request->session()->put('current_user.quote_keyword', $keyword); $queries['keyword'] = $keyword; $quote_arr = \DB::table('daily_quotes') ->join('staff_members AS staffcreate', 'staffcreate.id', '=', 'daily_quotes.added_by_id') ->select('daily_quotes.id', 'daily_quotes.author', 'daily_quotes.quote_date', 'daily_quotes.quote', 'daily_quotes.status', 'staffcreate.name As addedBy') ->whereRaw("daily_quotes.quote LIKE '%$keyword%' OR daily_quotes.status LIKE '%$keyword%' OR daily_quotes.author LIKE '%$keyword%' OR daily_quotes.quote_date LIKE '%$keyword%' OR staffcreate.name LIKE '%$keyword%'") ->orderBy('daily_quotes.quote', 'ASC') ->paginate(15)->appends($queries); } return response()->json($quote_arr); } public function create(){ $status = [ 'active' => 'active', 'inactive' => 'inactive', ]; $data = [ 'page_title' => 'New Daily Quote', 'status' => $status, ]; return view('daily_quotes.create', $data); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $request->validate([ 'quote' => 'required', 'author' => 'required', 'quote_date' => 'sometimes', 'status' => 'required', ]); $check_duplicate = Models\DailyQuote::where('quote', $request->quote)->first(); if ($check_duplicate) { return redirect()->back()->withInput()->withErrors("Daily Quote already exist!"); } $quote_arr = $request->except('_token'); $quote_arr['added_by_id'] = session('current_user.id'); $result = Models\DailyQuote::create($quote_arr); Session::flash('success_message', 'Daily Quote successfully added'); return redirect(url('dailyquotes')); } public function edit($id){ $quote = Models\DailyQuote::findOrFail($id); $status = [ 'active' => 'active', 'inactive' => 'inactive', ]; $data = [ 'page_title' => 'Edit Daily Quote', 'status' => $status, 'clients' => $client_arr, 'quote' => $quote, ]; return view('quote.edit', $data); } public function update(Request $request, $id) { $request->validate([ 'quote' => 'required|max:11', 'author' => 'required_if:direct_mno,YES', 'quote_date' => 'required_if:direct_mno,NO', 'status' => 'required', 'remarks' => 'sometimes', ]); // dd($request->all()); $quote = Models\DailyQuote::findOrFail($id); $quote->quote = $request->quote; $quote->author = $request->author ?? ''; $quote->status = $request->status; $quote->quote_date = $request->quote_date ?? ''; $quote->added_by_id = session('current_user.id'); $quote->save(); Session::flash('success_message', 'Daily Quote successfully Updated'); return redirect(url('dailyquotes')); } }