2017-04-15 88 views
2

我想从我的laravel 5.2 app形式提出的请求保存到我的数据库:保存请求数据库

当我提交字testdy请求我得到一个异常:

FatalThrowableError在KeywordController。 PHP的第49行: 级“应用\关键字”找不到

线49在我的控制器是,当我想建立我的模型:$keyword = new Keyword($request);

下面你可以找到KeywordController的代码:

<?php 

namespace App\Http\Controllers; 

use App\Keyword; 
use App\Http\Requests\KeywordRequest; 
use Response; 
use Sentinel; 

class KeywordController extends JoshController 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    /** 
    * Display a listing of the resource. 
    * 
    * @return Response 
    */ 
    public function index() 
    { 
     // Grab all the Keywords 
    // $Keywords = Keyword::all(); 
     // Show the page 
     return View('admin.keyword.index'); //, compact('Keywords')); 
    } 

    public function create() 
    { 
     // $Keywordcategory = KeywordCategory::lists('title', 'id'); 
     return view('admin.keyword.create'); //, compact('Keywordcategory')); 
    } 

    public function store(KeywordRequest $request) 
    { 
     //dd($request); 
     $keyword = new Keyword($request); //line 49 of my controller 

     $keyword->user_id = Sentinel::getUser()->id; 
     $keyword->save(); 

     if ($keyword->id) { 
      return redirect('admin/keyword')->with('success', trans('Keyword/message.success.create')); 
     } else { 
      return Redirect::route('admin/keyword')->withInput()->with('error', trans('Keyword/message.error.create')); 
     } 
    } 

    public function show(Keyword $keyword) 
    { 
     $comments = Keyword::all(); 

     return view('admin.keyword.show', compact('Keyword', 'comments', 'tags')); 
    } 

    public function edit(Keyword $keyword) 
    { 
     $Keywordcategory = KeywordCategory::lists('title', 'id'); 

     return view('admin.keyword.edit', compact('Keyword', 'Keywordcategory')); 
    } 

    public function update(KeywordRequest $request, Keyword $Keyword) 
    { 
     if ($request->hasFile('image')) { 
      $file = $request->file('image'); 
      $filename = $file->getClientOriginalName(); 
      $extension = $file->getClientOriginalExtension() ?: 'png'; 
      $folderName = '/uploads/Keyword/'; 
      $picture = str_random(10).'.'.$extension; 
      $Keyword->image = $picture; 
     } 

     if ($request->hasFile('image')) { 
      $destinationPath = public_path().$folderName; 
      $request->file('image')->move($destinationPath, $picture); 
     } 
     $Keyword->retag($request['tags']); 

     if ($Keyword->update($request->except('image', '_method', 'tags'))) { 
      return redirect('admin/keyword')->with('success', trans('Keyword/message.success.update')); 
     } else { 
      return Redirect::route('admin/keyword')->withInput()->with('error', trans('Keyword/message.error.update')); 
     } 
    } 

    public function getModalDelete(Keyword $Keyword) 
    { 
     $model = 'Keyword'; 
     $confirm_route = $error = null; 
     try { 
      $confirm_route = route('delete/Keyword', ['id' => $Keyword->id]); 

      return View('admin/layouts/modal_confirmation', compact('error', 'model', 'confirm_route')); 
     } catch (GroupNotFoundException $e) { 
      $error = trans('Keyword/message.error.delete', compact('id')); 

      return View('admin/layouts/modal_confirmation', compact('error', 'model', 'confirm_route')); 
     } 
    } 

    public function destroy(Keyword $Keyword) 
    { 
     if ($Keyword->delete()) { 
      return redirect('admin/keyword')->with('success', trans('Keyword/message.success.delete')); 
     } else { 
      return Redirect::route('admin/keyword')->withInput()->with('error', trans('Keyword/message.error.delete')); 
     } 
    } 
} 

我的要求,请参阅dd($request);如下所示:

KeywordRequest {#323 ▼ 
    #container: Application {#3 ▶} 
    #redirector: Redirector {#330 ▼ 
    #generator: UrlGenerator {#114 ▼ 
     #routes: RouteCollection {#26 ▶} 
     #request: Request {#40 ▶} 
     #forcedRoot: null 
     #forceSchema: null 
     #cachedRoot: null 
     #cachedSchema: null 
     #rootNamespace: "App\Http\Controllers" 
     #sessionResolver: Closure {#115 ▶} 
     #dontEncode: array:14 [▶] 
    } 
    #session: Store {#264 ▼ 
     #id: "6db1ef2a6ede612fa681e299c7731866afce7b34" 
     #name: "laravel_session" 
     #attributes: array:4 [▼ 
     "_token" => "HbguKauEYhU00n9YcCvw8lloKWbd51I6FOhHRORB" 
     "_previous" => array:1 [▶] 
     "flash" => array:2 [▶] 
     "cartalyst_sentinel" => "5jqJ2R6MTFm4DkOefwhknOD3WY4Jaa0T" 
     ] 
     #bags: [] 
     #metaBag: MetadataBag {#255 ▼ 
     -name: "__metadata" 
     -storageKey: "_sf2_meta" 
     #meta: &120 array:3 [▼ 
      "u" => 1492269234 
      "c" => 1492243279 
      "l" => "0" 
     ] 
     -lastUsed: 1492269215 
     -updateThreshold: 0 
     } 
     #bagData: array:1 [▶] 
     #handler: FileSessionHandler {#265 ▼ 
     #files: Filesystem {#117} 
     #path: "/home/ubuntu/workspace/storage/framework/sessions" 
     #minutes: 120 
     } 
     #started: true 
    } 
    } 
    #redirect: null 
    #redirectRoute: null 
    #redirectAction: null 
    #errorBag: "default" 
    #dontFlash: array:2 [▼ 
    0 => "password" 
    1 => "password_confirmation" 
    ] 
    #json: null 
    #convertedFiles: [] 
    #userResolver: Closure {#232 ▼ 
    class: "Cartalyst\Sentinel\Laravel\SentinelServiceProvider" 
    this: SentinelServiceProvider {#77 …} 
    use: {▼ 
     $app: Application {#3} 
    } 
    file: "/home/ubuntu/workspace/vendor/cartalyst/sentinel/src/Laravel/SentinelServiceProvider.php" 
    line: "425 to 427" 
    } 
    #routeResolver: Closure {#233 ▼ 
    class: "Illuminate\Routing\Router" 
    this: Router {#24 …} 
    use: {▼ 
     $route: Route {#149 ▼ 
     #uri: "admin/keyword/create" 
     #methods: array:1 [▶] 
     #action: array:6 [▶] 
     #defaults: [] 
     #wheres: array:1 [▶] 
     #parameters: [] 
     #parameterNames: [] 
     #compiled: CompiledRoute {#239 ▶} 
     #router: Router {#24 …} 
     #container: Application {#3} 
     } 
    } 
    file: "/home/ubuntu/workspace/vendor/laravel/framework/src/Illuminate/Routing/Router.php" 
    line: "693 to 695" 
    } 
    +attributes: ParameterBag {#325 ▼ 
    #parameters: [] 
    } 
    +request: ParameterBag {#322 ▼ 
    #parameters: array:2 [▼ 
     "_token" => "HbguKauEYhU00n9YcCvw8lloKWbd51I6FOhHRORB" 
     "keyword" => "tesdy" 
    ] 
    } 
    +query: ParameterBag {#324 ▼ 
    #parameters: [] 
    } 
    +server: ServerBag {#328 ▼ 
    #parameters: array:42 [▶] 
    } 
    +files: FileBag {#327 ▼ 
    #parameters: [] 
    } 
    +cookies: ParameterBag {#326 ▼ 
    #parameters: array:2 [▼ 
     "XSRF-TOKEN" => "HbguKauEYhU00n9YcCvw8lloKWbd51I6FOhHRORB" 
     "laravel_session" => "6db1ef2a6ede612fa681e299c7731866afce7b34" 
    ] 
    } 
    +headers: HeaderBag {#329 ▼ 
    #headers: array:16 [▼ 
     "host" => array:1 [▶] 
     "content-length" => array:1 [▶] 
     "cache-control" => array:1 [▶] 
     "origin" => array:1 [▶] 
     "upgrade-insecure-requests" => array:1 [▶] 
     "user-agent" => array:1 [▶] 
     "content-type" => array:1 [▶] 
     "accept" => array:1 [▶] 
     "referer" => array:1 [▶] 
     "accept-encoding" => array:1 [▶] 
     "accept-language" => array:1 [▶] 
     "cookie" => array:1 [▶] 
     "x-forwarded-proto" => array:1 [▶] 
     "x-forwarded-port" => array:1 [▶] 
     "x-forwarded-for" => array:1 [▶] 
     "connection" => array:1 [▶] 
    ] 
    #cacheControl: array:1 [▼ 
     "max-age" => "0" 
    ] 
    } 
    #content: "" 
    #languages: null 
    #charsets: null 
    #encodings: null 
    #acceptableContentTypes: null 
    #pathInfo: null 
    #requestUri: null 
    #baseUrl: null 
    #basePath: null 
    #method: "POST" 
    #format: null 
    #session: Store {#264 ▶} 
    #locale: null 
    #defaultLocale: "en" 
} 

"keyword" => "tesdy"参数在数据库相同的名称。

任何建议为什么$keyword = new Keyword($request);引发异常?

我很感谢你的回复!

更新

app/Keyword.php文件如下所示:

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Keywords extends Model 
{ 
    protected $table = 'keywords'; 

    protected $guarded = ['id']; 
} 
+3

你有'应用程序\ Keyword.php'文件?它是什么名字空间? –

+0

其他方法如何使用关键字?他们在工作吗? –

+0

@AlexeyMezenin请参阅我的更新。 – mrquad

回答

4

型号名称应为Keyword,改变它,这将解决这个问题:

class Keyword extends Model 
4

只是为了KeywordKeywordsapp/Keyword.php更改类名称。类名应该等于它的文件名。