2017-04-11 73 views
0

我正在學習laravel,但有這個錯誤,我可以解決,請幫助。 (laravel版本5.4.17)laravel類POS Http Request CategoriaFormRequest不存在

所以有一個視圖,它顯示了所有的類別和他們添加一個新的按鈕。 (就像在圖片)

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 

感謝您的時間!

回答

2

您的要求是有

namespace POS\Http\Requests;

還有什麼地方你的控制器是

use POS\Http\Request\CategoriaFormRequest;

將其更改爲:

use POS\Http\Requests\CategoriaFormRequest;

+0

對不起的人,我不明白它。你能詳細解釋一下嗎? –

+0

哦,在CategoriaFormRequest.php中,你有一個POS \ Http \ Requests的命名空間,用's'記錄請求。但是在你的控制器中,你有'使用POS \ Http \ Request \ CategoriaFormRequest',注意'Request',它沒有's'。所以通過將它改爲'使用POS \ Http \ Requests \ CategoriaFormRequest'可以工作。 – SteD

+0

是的,你是對的!我改變了它,它的工作原理!非常感謝! –

相關問題