2017-11-25 168 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