105 lines
3.1 KiB
PHP
105 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Bo;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\FaqThemes;
|
|
use App\Models\FaqQuestions;
|
|
use App\Traits\UpdateModelStatus;
|
|
|
|
class FaqQuestionsController extends Controller
|
|
{
|
|
use UpdateModelStatus;
|
|
|
|
public function index(Request $request)
|
|
{
|
|
$q = FaqQuestions::with('theme');
|
|
$this->sortQuery($q, ['utility']);
|
|
if ($request->sort_col === 'utility' and $request->sort_way) {
|
|
$q = $q->select('faq_questions.*');
|
|
$q = $q->selectRaw(
|
|
'(1 - faq_questions.negative_vote / faq_questions.positive_vote) AS `faq_questions_utility`'
|
|
);
|
|
$q = $q->orderBy('faq_questions_utility', $request->sort_way);
|
|
}
|
|
$q = $q->paginate();
|
|
return view('bo.faq-questions.index', compact('q'));
|
|
}
|
|
|
|
public function create()
|
|
{
|
|
$f = FaqThemes::orderBy('order', 'asc')->get();
|
|
return view('bo.faq-questions.create', compact('f'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
$question = $request->question;
|
|
$answer = $request->answer;
|
|
$positiveVote = $request->positive_vote;
|
|
$negativeVote = $request->negative_vote;
|
|
$themeId = $request->theme;
|
|
$status = 0;
|
|
|
|
$request->validate([
|
|
'question' => 'required|max:255',
|
|
'answer' => 'required|max:255',
|
|
'positive_vote' => 'required|min:0',
|
|
'negative_vote' => 'required|min:0',
|
|
]);
|
|
|
|
$q = new FaqQuestions();
|
|
$q->question = $question;
|
|
$q->answer = $answer;
|
|
$q->positive_vote = intval($positiveVote);
|
|
$q->negative_vote = intval($negativeVote);
|
|
$q->faq_themes_id = $themeId;
|
|
$q->status = $status;
|
|
$q->save();
|
|
|
|
return redirect()->route('bo.faq-questions.index');
|
|
}
|
|
|
|
public function edit(FaqQuestions $q)
|
|
{
|
|
$f = FaqThemes::orderBy('order', 'asc')->get();
|
|
return view('bo.faq-questions.edit')
|
|
->with('q', $q)
|
|
->with('f', $f);
|
|
}
|
|
|
|
public function update(Request $request, FaqQuestions $q)
|
|
{
|
|
$question = $request->question;
|
|
$answer = $request->answer;
|
|
$positiveVote = intval($request->positive_vote);
|
|
$negativeVote = intval($request->negative_vote);
|
|
$themeId = $request->theme;
|
|
$status = $request->status === null ? 0 : 1;
|
|
|
|
$request->validate([
|
|
'question' => 'required|max:255',
|
|
'answer' => 'required|max:255',
|
|
'positive_vote' => 'required|min:0',
|
|
'negative_vote' => 'required|min:0',
|
|
]);
|
|
|
|
$q->question = $question;
|
|
$q->answer = $answer;
|
|
$q->positive_vote = $positiveVote;
|
|
$q->negative_vote = $negativeVote;
|
|
$q->faq_themes_id = $themeId;
|
|
$q->status = $status;
|
|
$q->save();
|
|
|
|
return redirect()->route('bo.faq-questions.edit', $q->id)->with('success', 'Enregistré !');
|
|
}
|
|
|
|
public function destroy(FaqQuestions $q)
|
|
{
|
|
$q->delete();
|
|
|
|
return redirect()->route('bo.faq-questions.index');
|
|
}
|
|
}
|