ldc-crm/app/Http/Controllers/AnswerController.php
2022-03-22 11:47:58 +01:00

74 lines
1.6 KiB
PHP

<?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;
/**
* @codeCoverageIgnore
*/
class AnswerController extends Controller
{
use CrudController {
index as crudIndex;
}
/** @var Log */
public static $modelClass = Answer::class;
/**
* The Bo app layout
*
* @var string
*/
public static $layout = 'layouts.app';
/**
* Event index crud-policies
*
* @param Builder $query
* @return Builder
*/
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;
}
/**
* Overload crud-policies index
*
* @param CrudIndexRequest $request
* @return \Illuminate\Http\Response
*/
public function index(CrudIndexRequest $request)
{
/** @var \Illuminate\View\View */
$view = $this->crudIndex($request);
if ($request->ajax()) {
return $view;
}
return view('answer.index', $view->getData());
}
/**
* Before store model middleware
*
* @param Answer $answer
* @return void
*/
public function storeModel(Answer &$answer)
{
// * Save relation on create
$answer->question()->associate(request()->question);
}
}