laravel 5: Sınıf 'girişi' bulunamadı


114

Dosyamda routes.phpvar:

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

});

Kullanıcı kaydı için bir formum var. Ayrıca form girdilerinin değerini routes.php.

Ancak bir kullanıcı kaydettiğimde hata ortaya çıkıyor. Hata:

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

Yanıtlar:


275

Öyle Inputve değil input. Bu commitInput cephe tanımını kaldırdı , config/app.phpbu nedenle aliasesaşağıdaki gibi diziye manuel olarak eklemelisiniz ,

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

Veya isteğe bağlı Inputolarak cepheyi direkt ithal edebilirsiniz ,

use Illuminate\Support\Facades\Input;

Laravel 5.2'deki formlar için laravelcollective kullanırsam ve Shafee'nin yaptığı gibi rotalarda değil bir görünümde {{Form}} kullanırsam ne olur? {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
nclsvh

2
Global olarak erişmek için \ Input'u kullanabilirsiniz
pinkal vansia

Bunu nasıl veya nereye koymam gerekiyor? "laravelcollective/html": "5.2.*"
Girişin

Üzgünüz, önceki yorumunuza dikkat etmedim ama HTML'de, Input :: old () için sarmalayıcıdan başka bir şey olmayan yardımcı işlevi old () kullanabilirsiniz
pinkal vansia

@NicolasV , Nvan'ın cevabının da işaret ettiği gibi, aliasesiçine koyabilirsiniz . config/app.php
Nik Sumeiko

28

Laravel < 5.2 için :

Açın config/app.phpve Inputsınıfı şuraya ekleyin aliases:

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

Laravel >= 5.2 için

Değişim Input::içinRequest::


26

Bir cephe ekleyebilirsiniz. folder\config\app.php

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

23

Laravel 5.2'de Input ::, Request :: ile değiştirilir

kullanım

Request::

Denetleyicinin veya başka herhangi bir Sınıfın üstüne ekleyin

use Illuminate\Http\Request;

5

Öncelikle probleminiz input sınıfının yazılışıyla ilgilidir, input yerine Input olmalıdır. Ve sınıfı iyi bir ad alanıyla içe aktarmanız gerekir.

use Illuminate\Support\Facades\Input;

"Giriş" değil, "Giriş" olarak adlandırılmasını istiyorsanız, şunu ekleyin:

use Illuminate\Support\Facades\Input as input;

İkincisi, route.php aracılığıyla veritabanına depolamanın kirli bir yolu ve veri doğrulamasını işlemiyorsunuz. Gönderilen bir parametre beklediğiniz gibi değilse, veri türünden kaynaklanan bir SQL hatası görünebilir. Denetleyici yönteminde model aracılığıyla bilgi ile etkileşim ve depolama için denetleyiciyi kullanmalısınız.

Route.php dosyası yönlendirmeyi işler. Denetleyici ile istenen yol arasında bağlantı kurmak için tasarlanmıştır.

Denetleyici, ara katman yazılımı, model, hizmet hakkında bilgi edinmek için ... http://laravel.com/docs/5.1/

Daha fazla bilgiye ihtiyacınız varsa, sorunla ilgili çözüme ihtiyacınız varsa topluluğa katılabilirsiniz: https://laracasts.com/

Saygılarımızla.



4

Diğer adlar altında config / app.php dosyasındaki bildirim: -

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

Veya Girdi cephesini gerektiği gibi doğrudan içe aktarabilirsiniz,

use Illuminate\Support\Facades\Input;

veya

use Illuminate\Support\Facades\Input as input;


1

Bu temiz kod parçacığı benim için iyi çalışıyor:

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

Bunu config / app.php içinde takma adlar altına ekleyin: -

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


0

Laravel 6'da değiştirildi. Daha fazla bilgi için buraya bakın

App.php'de ve başka herhangi bir yerde hiçbir şey yapmayın, değiştirin

input :: get () ile Request :: input ()

ve

üstte sen Hash vb Girişini, Doğrulayıcısı, remove beyan nerede Girdi ve eklenti İsteği

şöyle bir şey kullanın:

Config, DB, File, Hash, Input , Redirect, Session, View, Validator, Request ;

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.