<?php namespace App\Admin\Forms; use App\Models\Inquiry; use Dcat\Admin\Models\Administrator; use Dcat\Admin\Widgets\Alert; use Dcat\Admin\Widgets\Form; use Dcat\Admin\Traits\LazyWidget; use Dcat\Admin\Contracts\LazyRenderable; class HandleInquiry extends Form implements LazyRenderable { use LazyWidget; /** * Handle the form request. * * @param array $input * * @return mixed */ public function handle(array $input) { $status = Inquiry::where('inquiry_id', $input['inquiry_id'])->value('status'); if ($status !== Inquiry::STATUS_PENDING) { return $this ->response() ->error(trans('inquiry.labels.inquiry_handle_status_wrong')) ->refresh(); } Inquiry::where('inquiry_id', $input['inquiry_id'])->update([ 'status' => $input['status'], 'processing_time' => time(), 'update_time' => time(), 'processing_result' => $input['handle_result'] ]); return $this ->response() ->success(trans('admin.update_succeeded')) ->refresh(); } /** * Build a form here. */ public function form() { $this->hidden('inquiry_id')->attribute('id', 'inquiry_id'); $this->radio('status')->options(admin_trans('inquiry.options.status'))->default(0)->required(); $this->textarea('handle_result', admin_trans('global.labels.handle_result'))->rows(5) ->required()->rules('required|max:255'); } /** * The data of the form. * * @return array */ public function default() { return [ 'status' => 999, 'handle_result' => '' ]; } }