【问题标题】:laravel Class POS\Http\Request\CategoriaFormRequest does not existlaravel 类 POS\Http\Request\CategoriaFormRequest 不存在
【发布时间】:2017-04-11 06:17:45
【问题描述】:

我正在学习 laravel,但是我可以解决这个错误,请帮助。 (laravel 版本 5.4.17)

所以有一个视图,它显示所有类别,它们是一个添加新类别的按钮。 (如图所示)

main view for a list of categories

new categorie view

这是我的控制器 (CategoriaController.php)

<?php
namespace POS\Http\Controller;
use Illuminate\Http\Request;
use POS\Categoria;
use Illuminate\Support\Facades\Redirect;
use POS\Http\Request\CategoriaFormRequest;
use DB;

class CategoriaController extends Controller
{
    public function __construct()
    {

    }
    public function index(Request $request){
        if($request){
            $query=trim($request->get('SearchText'));
            $categorias=DB::table('categoria')->where('nombre','LIKE','%'.$query.'%')
            ->where('condicion','=','1') //muestra las categorias con condicion activa
            // ->orderBy('idcategoria','desc') //ordena de manera descendente
            ->paginate(); //paginacion que muestra registros de 10 en 10
            return view('almacen.categoria.index',["categorias"=>$categorias,"searchText"=>$query]);
        }
    }
    public function create(){
        return view("almacen.categoria.create");
    }
    public function store(CategoriaFormRequest $request){
        $categoria=new Categoria;
        $categoria->nombre=$request->get('nombre');
        $categoria->descripcion=$request->get('descripcion');
        $categoria->condicion='1';
        $categoria->save();
        return Redirect::to('almacen/categoria');
    }
    public function show($id){
        return view("almacen.categoria.show",["categoria"=>Categoria::findorfail($id)]);
    }
    public function edit($id){
        return view("almacen.categoria.edit",["categoria"=>Categoria::findorfail($id)]);
    }
    public function update(CategoriaFormRequest $request,$id){
        $categoria=Categoria::findorfail($id);
        $categoria->nombre=$request->get('nombre');
        $categoria->descripcion=$request->get('descripcion');
        $categoria->update();
        return Redirect::to('almacen/categoria');
    }
    public function destroy($id){
        $categoria=Categoria::findorfail($id);
        $categoria->condicion='0';
        $categoria->update();
        return Redirect::to('almacen/categoria');
    }

}

?>

那么这是我的路线(web.php)

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::resource('almacen/categoria','CategoriaController');

这是我的请求 (CategoriaFormRequest.php)

<?php

namespace POS\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class CategoriaFormRequest 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 [
            'nombre'=>'required|max:50',
            'descripcion'=>'max:256',
        ];
    }
}

这也是我的观点(create.blade.php)

@extends ('layouts.admin')
@section ('contenido')
    <div class="row">
        <div class="col-lg-6 col-md-6 col sm-6 col-xs-12">
            <div class="page-header">Nueva Categoría</div>
            @if (count($errors)>0)
            <div class="alert alert-danger">
                <ul>
                @foreach ($errors->all() as $error)
                    <li>{{$error}}</li>
                @endforeach
                </ul>
            </div>
            @endif

            {!!Form::open(array('url'=>'almacen/categoria','method'=>'POST','autocomplete'=>'off'))!!}
            {{Form::token()}}
            <div class="form-group">
                <label for="nombre">Nombre</label>
                <input type="text" name="nombre" class="form-control" placeholder="Nombre...">
            </div>
            <div class="form-group">
                <label for="descripcion">Descripción</label>
                <input type="text" name="descripcion" class="form-control" placeholder="Descripción...">
            </div>
            <div class="form-group">
                <button class="btn btn-primary" type="submit">Guardar</button>
                <button class="btn btn-danger" type="reset">Cancelar</button>
            </div>

            {!!Form::close()!!}

        </div>
    </div>
@endsection

感谢您的宝贵时间!

【问题讨论】:

    标签: laravel frameworks laravel-5.4


    【解决方案1】:

    您的请求有

    namespace POS\Http\Requests;

    你的控制器在哪里

    use POS\Http\Request\CategoriaFormRequest;

    改成:

    use POS\Http\Requests\CategoriaFormRequest;

    【讨论】:

    • 对不起,我不明白。能详细解释一下吗?
    • 哦,在 CategoriaFormRequest.php 中,您有一个 POS\Http\Requests 的命名空间,请注意带有“s”的请求。但是在你的控制器中,你有use POS\Http\Request\CategoriaFormRequest,注意Request,它没有's'。因此,将其更改为 use POS\Http\Requests\CategoriaFormRequest 即可。
    • 是的,你是对的!我改变了它,它的工作原理!非常感谢!
    • 很高兴它有帮助:)
    猜你喜欢
    • 2020-06-20
    • 2021-01-15
    • 1970-01-01
    • 2017-02-07
    • 2016-07-09
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2020-05-01
    相关资源
    最近更新 更多