2017-11-25 62 views
1

我有一个简单的表单,我想用db提交。但它给我错误。 这里是我的CreateProductRequest类在laravel中找不到请求类

namespace App\Http\Requests\Request; 
use Illuminate\Foundation\Http\FormRequest; 

class CreateProductRequest extends FormRequest{ 
    //code here 
} 

这里是我的控制器功能。

namespace App\Http\Controllers\PrivatePages; 
use App\Http\Controllers\Controller; 
use App\Http\Requests\Request\CreateProductRequest; 
use App\Productuse Illuminate\Support\ServiceProvider; 
use Illuminate\Support\Facades\View; 
use Illuminate\Support\Facades\DB; 
use App\Http\FormRequests; 

class ProductController extends Controller{ 
    public function UpdateAdminProfile(CreateProductRequest $request){ 
     $saveproduct = new Product(); 
     $saveproduct->name = $request->name; 
     $saveproduct->quantity =$request->description; 

     $saveproduct->save(); 
    } 
} 

当我试图提交表单它给我下面的错误。

Class App\Http\Requests\Request\CreateProductRequest does not exist 
+0

您的控制器错字错误。请阅读第四行。 **使用App \ Product使用Illuminate \ Support \ ServiceProvider; ** –

+0

它说'Class App \ Http \ Requests \ Request \ CreateProductRequest不存在'在哪个文件上?也许你有名字空间问题。 – ultrasamad

+0

是它的类似命名空间问题,但所有名称空间都被正确定义和使用 – raja

回答

0

如果你已经正确按照命令生成的请求:

php artisan make:request ContactsRequest 

仔细检查您有一个名为ContactsRequest.php文件夹下:

app/Http/Requests 

如果你有一个下该文件夹将能够使用以下方式使用您的自定义ContactsRequest:

public function somefunction(Requests\ContactsRequest $request) 
+0

我有目录中的所有文件 – raja

+0

你运行了composer dump-autoload吗? –

+0

是的,我已经运行这个命令 – raja

0

尝试在您的laravel项目目录上运行composer dump-autoload

也试试这个代码

public function UpdateAdminProfile(CreateProductRequest $request) { 
    DB::beginTransaction(); 
    try { 
     $saveproduct = new Product(); 
     $saveproduct->name = $request->name; 
     $saveproduct->quantity =$request->description; 

     $saveproduct->save(); 
     DB::commit(); 
    } catch (\Exception $e) { 
     echo $e->getMessage(); 
     DB::rollback(); 
    } 

} 

不要忘记添加使用照亮的\ Support \外立面\ DB;

namespace App\Http\Requests 

并在控制器:类

+0

现在它只是刷新浏览器,并没有提交数据在分贝。 – raja

+0

好吧,现在尝试将$ request-> name和$ request-> description改为$ request-> get('name')和$ request-> get('description'); – wedev27

+0

同它只是刷新浏览器 – raja

0

更改命名空间之前

use App\Http\Requests\CreateProductRequest; 
+0

不,不工作只是刷新浏览器。现在它甚至不会按照表单行动 – raja

+0

@raja这意味着它的工作,你已经修复了错误。空白的浏览器是您需要解决的下一个问题。 –

+0

没有它的不工作它只是向我显示包含提交按钮的表单,并且此表单由CreateProductRequest进行验证。 – raja