laravel 5: Không tìm thấy 'đầu vào' lớp


114

Trong routes.phptệp của tôi, tôi có:

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

});

Tôi có một biểu mẫu để đăng ký người dùng. Tôi cũng đang lấy giá trị đầu vào biểu mẫu trongroutes.php .

Nhưng lỗi xuất hiện khi tôi đăng ký một người dùng. Lỗi:

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

Câu trả lời:


275

Nó được Inputvà không input. Cam kết này đã loại bỏ Inputđịnh nghĩa mặt tiền khỏi config/app.phpdo đó bạn phải thêm thủ công đó vào aliasesmảng như bên dưới,

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

Hoặc Bạn có thể nhập Inputtrực tiếp mặt tiền theo yêu cầu,

use Illuminate\Support\Facades\Input;

Điều gì sẽ xảy ra nếu tôi sử dụng laravelcollective cho các biểu mẫu trong laravel 5.2 và tôi sử dụng {{Form}} trong một chế độ xem, không phải trong các tuyến đường như Shafee làm. {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
nclsvh 27/12/15

2
Bạn có thể sử dụng \ Input để truy cập nó trên toàn cầu
pinkal vansia

Làm thế nào hoặc ở đâu tôi cần đặt nó? Thay đổi Đầu vào thành \ Đầu vào (bên trong các thẻ biểu mẫu) không hoạt động .. Ngoài ra, tôi không sử dụng đèn chiếu sáng \ support \ facades .. nhưng"laravelcollective/html": "5.2.*"
nclsvh 27/12/15

Xin lỗi tôi đã không chú ý đến lời nhận xét trước đó của bạn, nhưng trong HTML bạn có thể sử dụng helper chức năng cũ () đó là gì, nhưng wrapper cho Input :: cũ ()
pinkal vansia

@NicolasV bạn có thể đặt nó aliasesbên trong config/app.php, như câu trả lời của Nvan đã chỉ ra .
Nik Sumeiko,

28

Đối với laravel < 5.2 :

Mở config/app.phpvà thêm Inputlớp vào aliases:

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

Đối với laravel >= 5.2

Thay đổi Input::thànhRequest::


26

Bạn có thể thêm một mặt tiền trong folder\config\app.php

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

23

Trong Laravel 5.2 Đầu vào :: được thay thế bằng Yêu cầu ::

sử dụng

Request::

Thêm vào đầu Bộ điều khiển hoặc bất kỳ Lớp nào khác

use Illuminate\Http\Request;

5

Đầu tiên, vấn đề của bạn là về chính tả của lớp đầu vào, nên là Đầu vào thay vì đầu vào. Và bạn phải nhập lớp với không gian tên tốt.

use Illuminate\Support\Facades\Input;

Nếu bạn muốn nó được gọi là 'đầu vào' chứ không phải 'Đầu vào', hãy thêm cái này:

use Illuminate\Support\Facades\Input as input;

Thứ hai, đó là một cách bẩn để lưu trữ vào cơ sở dữ liệu thông qua route.php và bạn không xử lý xác thực dữ liệu. Nếu một tham số đã gửi không như bạn mong đợi, có thể lỗi SQL sẽ xuất hiện, do kiểu dữ liệu gây ra. Bạn nên sử dụng controller để tương tác với thông tin và lưu trữ thông qua mô hình trong phương thức controller.

Tệp route.php xử lý việc định tuyến. Nó được thiết kế để tạo liên kết giữa bộ điều khiển và tuyến được hỏi.

Để tìm hiểu về bộ điều khiển, phần mềm trung gian, mô hình, dịch vụ ... http://laravel.com/docs/5.1/

Nếu bạn cần thêm một số thông tin, giải pháp về vấn đề, bạn có thể tham gia cộng đồng: https://laracasts.com/

Trân trọng.



4

Khai báo trong config / app.php với bí danh: -

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

Hoặc Bạn có thể nhập trực tiếp mặt tiền đầu vào theo yêu cầu,

use Illuminate\Support\Facades\Input;

hoặc là

use Illuminate\Support\Facades\Input as input;


1

Đoạn mã sạch này hoạt động tốt đối với tôi:

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

Thêm cái này vào config / app.php với bí danh: -

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


0

Nó đã được thay đổi trong laravel 6. Xem để biết thêm thông tin tại đây

Không làm bất cứ điều gì trong app.php và bất kỳ nơi nào khác, chỉ cần thay thế

input :: get () với Request :: input ()

ở trên cùng, nơi bạn khai báo Input, Validator, Hash, v.v., hãy xóa Input và thêm Request

sử dụng một cái gì đó như:

Cấu hình, DB, Tệp, Băm, Đầu vào , Chuyển hướng, Phiên, Chế độ xem, Trình xác thực, Yêu cầu ;

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.