laravel lumen Входной класс не найден

Привет, я тестирую новый микрофреймворк lumen laravel, и когда я пытаюсь получить данные от веб-службы, я получаю эту ошибку

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

вот мой код:

<?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();
        }
  }
 }

person karmous    schedule 29.04.2015    source источник
comment
Вы раскомментировали withFacades в bootstrap.php?   -  person N.B.    schedule 29.04.2015
comment
Можете ли вы попробовать это сразу после вашего пространства имен, используйте App\Http\Controllers\Input;   -  person Irfan Ahmed    schedule 29.04.2015


Ответы (1)


Решение №1

Раскомментируйте $app->withFacades(); в bootstrap/app.php, чтобы вы могли использовать Facade в своем контроллере.

<?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();
        }
    }
}

Решение №2 (личное предпочтение)

Используйте внедрение зависимостей, чтобы внедрить класс 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();
        }
    }
}
person N.B.    schedule 29.04.2015
comment
Как добавить $request в метод GET? - person Volatil3; 03.09.2015
comment
@Н.Б. Итак, либо я создаю экземпляр объекта Request в качестве аргумента, либо вызываю статически, вызывая Request Facade? - person Volatil3; 03.09.2015
comment
@Volatil3 Volatil3 Вы можете просто передать экземпляр Request в свою модель, которую вы получите в качестве первого аргумента для вашего контроллера. - person N.B.; 03.09.2015
comment
Разница между Input фасадом и $request->input() заключается в том, что вы обращаетесь к массиву в более позднем примере, вы не можете вызывать такие методы, как has(), get() и т. д. - person Sisir; 16.09.2017