Вход Регистрация
Файл: app/Http/Controllers/Admin/StatusController.php
Строк: 112
<?php

declare(strict_types=1);

namespace 
AppHttpControllersAdmin;

use 
AppClassesValidator;
use 
AppModelsStatus;
use 
IlluminateHttpRedirectResponse;
use 
IlluminateHttpRequest;
use 
IlluminateViewView;

class 
StatusController extends AdminController
{
    
/**
     * Главная страница
     */
    
public function index(): View
    
{
        
$statuses Status::query()->orderByDesc('topoint')->get();

        return 
view('admin/status/index'compact('statuses'));
    }

    
/**
     * Добавление статуса
     *
     *
     * @return View|RedirectResponse
     */
    
public function create(Request $requestValidator $validator)
    {
        if (
$request->isMethod('post')) {
            
$topoint int($request->input('topoint'));
            
$point int($request->input('point'));
            
$name $request->input('name');
            
$color $request->input('color');

            
$validator
                
->equal($request->input('_token'), csrf_token(), __('validator.token'))
                ->
length($name330, ['name' => __('statuses.status_length')])
                ->
regex($color'|^#+[A-f0-9]{6}$|', ['color' => __('validator.color')], false);

            if (
$validator->isValid()) {
                
Status::query()->create([
                    
'topoint' => $topoint,
                    
'point'   => $point,
                    
'name'    => $name,
                    
'color'   => $color,
                ]);

                
setFlash('success'__('statuses.status_success_added'));

                return 
redirect('admin/status');
            }

            
setInput($request->all());
            
setFlash('danger'$validator->getErrors());
        }

        return 
view('admin/status/create');
    }

    
/**
     * Редактирование статуса
     *
     *
     * @return View|RedirectResponse
     */
    
public function edit(Request $requestValidator $validator)
    {
        
$id int($request->input('id'));

        
$status Status::query()->find($id);

        if (! 
$status) {
            
abort(404__('statuses.status_not_found'));
        }

        if (
$request->isMethod('post')) {
            
$topoint int($request->input('topoint'));
            
$point int($request->input('point'));
            
$name $request->input('name');
            
$color $request->input('color');

            
$validator
                
->equal($request->input('_token'), csrf_token(), __('validator.token'))
                ->
length($name330, ['name' => __('statuses.status_length')])
                ->
regex($color'|^#+[A-f0-9]{6}$|', ['color' => __('validator.color')], false);

            if (
$validator->isValid()) {
                
$status->update([
                    
'topoint' => $topoint,
                    
'point'   => $point,
                    
'name'    => $name,
                    
'color'   => $color,
                ]);

                
setFlash('success'__('statuses.status_success_edited'));

                return 
redirect('admin/status');
            }

            
setInput($request->all());
            
setFlash('danger'$validator->getErrors());
        }

        return 
view('admin/status/edit'compact('status'));
    }

    
/**
     * Удаление статуса
     */
    
public function delete(Request $requestValidator $validator): RedirectResponse
    
{
        
$id int($request->input('id'));

        
$validator->equal($request->input('_token'), csrf_token(), __('validator.token'));

        
$status Status::query()->find($id);
        
$validator->notEmpty($status__('statuses.status_not_found'));

        if (
$validator->isValid()) {
            
$status->delete();

            
setFlash('success'__('statuses.status_success_deleted'));
        } else {
            
setFlash('danger'$validator->getErrors());
        }

        return 
redirect('admin/status');
    }
}
Онлайн: 5
Реклама