私の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
これはInput
であり、input
ではありません。 このコミット はconfig/app.php
からInput
ファサード定義を削除したので、以下のように手動でaliases
配列に追加する必要があります。
'Input' => Illuminate\Support\Facades\Input::class,
あるいは、必要に応じてInput
ファサードを直接インポートすることもできます。
use Illuminate\Support\Facades\Input;
Laravel <
5.2の場合:
config/app.php
を開き、Input
クラスをaliases
に追加します。
'aliases' => [
// ...
'Input' => Illuminate\Support\Facades\Input::class,
// ...
],
>=
5.2
Input::
をRequest::
に変更
folder\config\app.php
にファサードを追加することができます
'Input' => Illuminate\Support\Facades\Input::class,
Laravel 5.2では、Input ::はRequest ::に置き換えられました。
つかいます
Request::
コントローラーまたは他のクラスの一番上に追加する
use Illuminate\Http\Request;
最初にあなたの問題は入力クラスのつづりに関するもので、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/
よろしく。
エイリアスの下のconfig/app.phpでの宣言: -
'Input' => Illuminate\Support\Facades\Input::class,
または、必要に応じて入力ファサードを直接インポートできます。
use Illuminate\Support\Facades\Input;
または
use Illuminate\Support\Facades\Input as input;
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');
}
}
'Input' => Illuminate\Support\Facades\Input::class
、App.phpに追加してください。
エイリアスの下のconfig/app.phpにこれを追加してください -
'Input' => Illuminate\Support\Facades\Input::class,
Classのその他のことInput
ではなくinput
であるべきです
このきれいなコードスニペットは私にとってはうまくいきます:
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();
});