laravel 5: Kelas 'input' tidak ditemukan


114

Dalam routes.phpfile saya, saya memiliki:

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

});

Saya memiliki formulir untuk pendaftaran pengguna. Saya juga mengambil nilai input formulir di routes.php.

Tetapi kesalahan muncul ketika saya mendaftarkan pengguna. Kesalahan:

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

Jawaban:


275

Ini Inputdan tidak input. Komit ini menghapus Inputdefinisi fasad dari sana, config/app.phpmaka Anda harus menambahkannya secara manual ke dalam aliasesarray seperti di bawah ini,

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

Atau Anda dapat mengimpor Inputfasad secara langsung sesuai kebutuhan,

use Illuminate\Support\Facades\Input;

Bagaimana jika saya menggunakan laravelcollective untuk formulir di laravel 5.2 dan saya menggunakan {{Form}} dalam tampilan, bukan di rute seperti yang dilakukan Shafee. {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
nclsvh

2
Anda dapat menggunakan \ Input untuk mengaksesnya secara global
pinkal vansia

Bagaimana atau di mana saya harus meletakkan ini? Mengubah Input ke \ Input (di dalam tag formulir) tidak berfungsi .. Juga saya tidak menggunakan illuminate \ support \ "laravelcollective/html": "5.2.*"
facades

Maaf saya tidak memperhatikan komentar Anda sebelumnya tetapi dalam HTML Anda dapat menggunakan fungsi pembantu old () yang tidak lain adalah pembungkus untuk Input :: old ()
pinkal vansia

@NicolasV Anda bisa menempatkannya di bawah aliasesdi dalam config/app.php, sebagai jawaban Nvan ini menunjukkan .
Nik Sumeiko

28

Untuk laravel < 5.2 :

Buka config/app.phpdan tambahkan Inputkelas ke aliases:

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

Untuk laravel >= 5.2

Ganti Input::keRequest::


26

Anda dapat menambahkan fasad di folder\config\app.php

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

23

Di Laravel 5.2 Input :: diganti dengan Request ::

menggunakan

Request::

Tambahkan ke atas Kontroler atau Kelas lainnya

use Illuminate\Http\Request;

5

Pertama, masalah Anda adalah tentang ejaan kelas input, harus Input, bukan input. Dan Anda harus mengimpor kelas dengan namespace yang bagus.

use Illuminate\Support\Facades\Input;

Jika Anda menginginkannya disebut 'input' bukan 'Input', tambahkan ini:

use Illuminate\Support\Facades\Input as input;

Kedua, Ini adalah cara kotor untuk menyimpan ke database melalui route.php, dan Anda tidak memproses validasi data. Jika parameter terkirim tidak seperti yang Anda harapkan, mungkin akan muncul kesalahan SQL, yang disebabkan oleh tipe datanya. Anda harus menggunakan pengontrol untuk berinteraksi dengan informasi dan menyimpan melalui model dalam metode pengontrol.

File route.php menangani perutean. Ini dirancang untuk membuat hubungan antara pengontrol dan rute yang diminta.

Untuk mempelajari tentang controller, middleware, model, service ... http://laravel.com/docs/5.1/

Jika Anda membutuhkan informasi lebih lanjut, solusi tentang masalah Anda dapat bergabung dengan komunitas: https://laracasts.com/

Salam.



4

Deklarasi di config / app.php di bawah alias: -

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

Atau Anda dapat mengimpor fasad Input secara langsung sesuai kebutuhan,

use Illuminate\Support\Facades\Input;

atau

use Illuminate\Support\Facades\Input as input;


1

Cuplikan kode bersih ini berfungsi dengan baik untuk saya:

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

Tambahkan ini di config / app.php di bawah alias: -

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


0

Ini diubah di laravel 6. Lihat info lebih lanjut di sini

Jangan lakukan apa pun di app.php dan di mana pun, cukup ganti

input :: get () dengan Request :: input ()

dan

di atas tempat Anda mendeklarasikan Input, Validator, Hash dll., Hapus Input dan tambahkan Permintaan

gunakan sesuatu seperti:

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.