web-dev-qa-db-ja.com

laravel 5:クラス 'input'が見つかりません

私のroutes.phpファイルには、次のものがあります。

Route::get('/', function () {

    return view('login');
});

Route::get('/index', function(){
    return view('index');
});

Route::get('/register', function(){
    return view('register');
});
Route::post('/register',function(){

    $user = new \App\User;
    $user->username = input::get('username');
    $user->email  = input::get('email');
    $user->password = Hash::make(input::get('username'));
    $user->designation = input::get('designation');
    $user->save();

});

ユーザー登録用のフォームがあります。私はroutes.phpのフォームの入力値も取ります。

しかし、ユーザーを登録するとエラーが発生します。エラー:

FatalErrorException in routes.php line 61:
Class 'input' not found
99
Gammer

これはInputであり、inputではありません。 このコミットconfig/app.phpからInputファサード定義を削除したので、以下のように手動でaliases配列に追加する必要があります。

'Input' => Illuminate\Support\Facades\Input::class,

あるいは、必要に応じてInputファサードを直接インポートすることもできます。

use Illuminate\Support\Facades\Input;
255
pinkal vansia

Laravel <5.2の場合:

config/app.phpを開き、Inputクラスをaliasesに追加します。

'aliases' => [
// ...
  'Input' => Illuminate\Support\Facades\Input::class,
// ...
],

>=5.2

Input::Request::に変更

26
Pedro Lobito

folder\config\app.phpにファサードを追加することができます

'Input' => Illuminate\Support\Facades\Input::class,
26
Nvan

Laravel 5.2では、Input ::はRequest ::に置き換えられました。

つかいます

Request::

コントローラーまたは他のクラスの一番上に追加する

use Illuminate\Http\Request;
21
lewis4u

最初にあなたの問題は入力クラスのつづりに関するもので、inputではなくInputにすべきです。そして、あなたは良い名前空間を持つクラスをインポートしなければなりません。

use Illuminate\Support\Facades\Input;

'Input'ではなく 'input'という名前にしたい場合は、これを追加してください。

use Illuminate\Support\Facades\Input as input;

次に、route.phpを使ってデータベースに保存するのは汚い方法で、データ検証を処理していません。送信したパラメータが予想したものと異なる場合は、おそらくデータ型が原因のSQLエラーが表示されます。あなたは情報と相互作用し、コントローラメソッドのモデルを介して格納するためにコントローラを使用する必要があります。

Route.phpファイルはルーティングを処理します。それはコントローラーと頼まれたルート間のリンクを作るように設計されています。

コントローラ、ミドルウェア、モデル、サービスについて学ぶには... http://laravel.com/docs/5.1/

あなたが問題についてのいくつかのより多くの情報、解決策を必要とするなら、あなたはコミュニティに参加することができます: https://laracasts.com/

よろしく。

5
Disfigure

エイリアスの下のconfig/app.phpでの宣言: -

'Input' => Illuminate\Support\Facades\Input::class,

または、必要に応じて入力ファサードを直接インポートできます。

use Illuminate\Support\Facades\Input;

または

use Illuminate\Support\Facades\Input as input;
4

Laravel version 5.2を使用している場合これを確認してください。 https://laravel.com/docs/5.2/requests#accessing-the-request

use Illuminate\Http\Request;//Access able for All requests
...

class myController extends Controller{
   public function myfunction(Request $request){
     $name = $request->input('username');
   }
 }
4
Ferhat KOÇER

'Input' => Illuminate\Support\Facades\Input::class、App.phpに追加してください。

2
prakash pokhrel

エイリアスの下のconfig/app.phpにこれを追加してください -

'Input' => Illuminate\Support\Facades\Input::class,
0
Deepak Kumar

Classのその他のことInputではなくinputであるべきです

0
Kenneth Sunday

このきれいなコードスニペットは私にとってはうまくいきます:

use Illuminate\Http\Request;
Route::post('/register',function(Request $request){

   $user = new \App\User;
   $user->username = $request->input('username');
   $user->email  = $request->input('email');
   $user->password = Hash::make($request->input('username'));
   $user->designation = $request->input('designation');
   $user->save();
});
0
Pradeep Sapkota