2021-09-10 15:43:27 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
use App\Models\Answer;
|
|
|
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
|
use Kwaadpepper\CrudPolicies\Http\Requests\CrudIndexRequest;
|
|
|
|
|
use Kwaadpepper\CrudPolicies\Traits\CrudController;
|
|
|
|
|
|
2021-12-19 15:57:24 +01:00
|
|
|
/**
|
|
|
|
|
* @codeCoverageIgnore
|
|
|
|
|
*/
|
2021-09-10 15:43:27 +02:00
|
|
|
class AnswerController extends Controller
|
|
|
|
|
{
|
|
|
|
|
use CrudController {
|
|
|
|
|
index as crudIndex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** @var Log */
|
|
|
|
|
public static $modelClass = Answer::class;
|
|
|
|
|
|
2021-12-19 15:57:24 +01:00
|
|
|
/**
|
|
|
|
|
* The Bo app layout
|
|
|
|
|
*
|
|
|
|
|
* @var string
|
|
|
|
|
*/
|
2021-09-10 15:43:27 +02:00
|
|
|
public static $layout = 'layouts.app';
|
|
|
|
|
|
2021-12-19 15:57:24 +01:00
|
|
|
/**
|
|
|
|
|
* Event index crud-policies
|
|
|
|
|
*
|
|
|
|
|
* @param Builder $query
|
|
|
|
|
* @return Builder
|
|
|
|
|
*/
|
2021-09-10 15:43:27 +02:00
|
|
|
public function indexQuery(Builder $query): Builder
|
|
|
|
|
{
|
|
|
|
|
$parent = request()->question;
|
|
|
|
|
if ($parent) {
|
|
|
|
|
$query->whereHas('question', function ($q) use ($parent) {
|
|
|
|
|
return $q->whereId($parent->id);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return $query;
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-19 15:57:24 +01:00
|
|
|
/**
|
|
|
|
|
* Overload crud-policies index
|
|
|
|
|
*
|
|
|
|
|
* @param CrudIndexRequest $request
|
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
|
*/
|
2021-09-10 15:43:27 +02:00
|
|
|
public function index(CrudIndexRequest $request)
|
|
|
|
|
{
|
|
|
|
|
/** @var \Illuminate\View\View */
|
|
|
|
|
$view = $this->crudIndex($request);
|
|
|
|
|
if ($request->ajax()) {
|
|
|
|
|
return $view;
|
|
|
|
|
}
|
|
|
|
|
return view('answer.index', $view->getData());
|
|
|
|
|
}
|
2022-03-22 11:47:58 +01:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Before store model middleware
|
|
|
|
|
*
|
|
|
|
|
* @param Answer $answer
|
|
|
|
|
* @return void
|
|
|
|
|
*/
|
|
|
|
|
public function storeModel(Answer &$answer)
|
|
|
|
|
{
|
|
|
|
|
// * Save relation on create
|
|
|
|
|
$answer->question()->associate(request()->question);
|
|
|
|
|
}
|
2021-09-10 15:43:27 +02:00
|
|
|
}
|