Class App \ Http \ Requests \ TagStoreRequest does not exist

1

Hi, I'm trying to save / Update But when I try to do that, an error occurs.

Class App\Http\Requests\TagStoreRequest does not exist

Class App\Http\Requests\TagUpdateRequest does not exist

In this example I have this:

in my TagStoreRequest

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class TagStoreRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name' = 'required',
            'slug' = 'required|unique:tags,slug',
        ];
    }
}
This is the TagUpdateRequest

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class TagUpdateRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {   
        
        return [
            'name' = 'required',
            'slug' = 'required|unique:tags,slug,'.$this->tag,
        ];
    }
}

The create This is my form

@extends('layouts.app')


@section('content')
<div class="container">
	<div class="row">
		<div class="col-md-8 col-md-offset-2">
			<div class="panel panel-default">

				<div class="panel-heading">
					
					Crear Etiqueta
					
				</div>

				<div class="panel-body">
					{!! Form::open(['route'=>'tags.store'])!!}
						
						@include('admin.tags.partials.form')

			
					{!! Form::close() !!}
				</div>

			</div>
		</div>
	</div>
</div>

@endsection

Form That is included

<div class="form-group">
	 {{ Form::label('name','Nombre de la etiqueta')}}
	 {{ Form::text('name',null,['class' => 'form-control','id' =>'name'])}}
</div>

<div class="form-group">
	 {{ Form::label('slug','url Amigable')}}
	 {{ Form::text('slug',null,['class' => 'form-control','id' =>'slug'])}}
</div>
<div class="form-group">
	{{ Form::submit('Guardar',['class' => 'btn btn-sm btn-primary'])}}
</div>

@section('scripts')
<script src="{{ asset('vendor/stringToSlug/jquery.stringToSlug.min.js')}}"></script>
<script >
	$(document).ready(function(){
		$("#name, #slug").stringToSlug({
			callback:function(text){
				$("#slug").val(text);
			}
		});
	});
</script>


@endsection

This way I have my Controller

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;


//validaciones 
use App\Http\Requests\TagStoreRequest;
use App\Http\Requests\TagUpdateRequest;

use App\Http\Controllers\Controller;

//modelo
use App\Tag;


class TagController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function __construct()
    {

        $this->middleware('auth');
    }


    public function index()
    {
    
        $tags = Tag::orderBy('id','DESC')
        ->paginate();

        return view('admin.tags.index',compact('tags'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        ///muestra el formulario
        return view('admin.tags.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(TagStoreRequest $request)
    {
        //Validar 

        //Guarda la información

        $tag= Tag::create($request->all());
        //despues de Guardar, Pueda Editar.

        return redirect()
         ->route('tags.edit',$tag->id)
        ->with('info','Etiqueta Creada con Exito');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //para ver en detalle una etiqueta

        $tag =Tag::find($id);

        return view('admin.tags.show',compact('tag'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
         $tag= Tag::find($id);

        return view('admin.tags.edit',compact('tag'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(TagUpdateRequest $request, $id)
    {   
        //validar 

        $tag = Tag::find($id);

        //Actualizamos Segun su ID
        $tag->fill($request->all())->save();

        return redirect()
         ->route('tags.edit',$tag->id)
        ->with('info','Etiqueta Actualizada con Exito');

    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //para eliminar 
        $tag = Tag::find($id)->delete();
        
        return back()->with('Info','Eliminado Correctamente');

    }
}

This is how I have my files:

Clearly the is the class says it does not exist but according to everything I've done well, more however it does not work

My route:

Route::resource('tags',        'Admin\TagController');
    
asked by Alex Burke Cooper 08.05.2018 в 08:04
source

1 answer

3

You have a well defined error in your FormRequest in TagUpdateRequest as in TagStoreRequest the array of validations must be associative clave => valor , and what you are doing is incorrect since the correct association symbol is => and not = , having errors like this Laravel does not compile the classes correctly and for which you get this result of "Class does not exist"

TagStoreRequest

public function rules()
{
    return [
        'name' => 'required',
        'slug' => 'required|unique:tags,slug',
    ];
}

TagUpdateRequest

public function rules()
{   

    return [
        'name' => 'required',
        'slug' => 'required|unique:tags,slug,'.$this->tag,
    ];
}

If after this you persist with the error, another option would be to use the command

composer dump-autoload
    
answered by 08.05.2018 / 08:09
source