laravel 找不到laravel流明输入类

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/29942402/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 11:28:09  来源:igfitidea点击:

laravel lumen Input class not found

phplaravellumen

提问by karmous

Hi im testing lumen new laravel micro-frameword and when i'm trying to get input from a web service im getting this error

嗨,我正在测试 lumen new laravel micro-frameword,当我尝试从 Web 服务获取输入时,我收到此错误

Fatal error: Class 'App\Http\Controllers\Input' not found in   C:\wamp\www\lumen\app\Http\Controllers\WsController.php

here is my code :

这是我的代码:

<?php namespace App\Http\Controllers;

class WsController extends Controller {

 public function addUser()
  {
        $user = new Models\User;
        $user->email = Input::get('email');;
        $user->password = strtoupper(md5(Input::get('password')));
        $user->first_name = Input::get('first_name');
        $user->last_name = Input::get('last_name');
        if($user->save()){
            return Models\User::all();
        }
  }
 }

回答by N.B.

Solution #1

解决方案#1

Uncomment $app->withFacades();in bootstrap/app.phpto allow you to use the Facade in your controller.

取消注释$app->withFacades();bootstrap/app.php,允许您使用门面控制器。

<?php 

namespace App\Http\Controllers;

use Input;

class WsController extends Controller 
{

    public function addUser(Request $request)
    {
        $user = new Models\User;
        $user->email = Input::get('email');
        $user->password = strtoupper(md5(Input::get('password')));
        $user->first_name = Input::get('first_name');
        $user->last_name = Input::get('last_name');
        if($user->save()) {
            return Models\User::all();
        }
    }
}

Solution #2 (personal preference)

解决方案#2(个人喜好)

Use dependency injection to inject the Illuminate\Http\Requestclass into your methods.

使用依赖注入将Illuminate\Http\Request类注入到您的方法中。

<?php 

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class WsController extends Controller 
{

    public function addUser(Request $request)
    {
        $user = new Models\User;
        $user->email = $request->input('email');;
        $user->password = strtoupper(md5($request->input('password')));
        $user->first_name = $request->input('first_name');
        $user->last_name = $request->input('last_name');

        if($user->save()) {
            return Models\User::all();
        }
    }
}

回答by Vivek

   <?php namespace App\Http\Controllers;

    use Illuminate\Support\Facades\Request as Request;

    class WsController extends Controller {

    public function addUser()
    {        
            //creating a new user object from User model class
            $user = new Models\User;
            //getting the email value from the email input like Input::get('email');
            $user->email = Request::input('email');
            //same as above happen with the rest of the lines
            $user->password = strtoupper(md5(Request::input('password')));
            $user->first_name = Request::input('first_name');
            $user->last_name = Request::input('last_name');
            //User model has a save() method, so is calling if return true the if block will be executed
            if($user->save()){
            return Models\User::all();
            }
      }

            //this is the best way in lumen to execute some method, because lumen is powerful in small APIs and restful services
    }