laravel 5:找不到类“输入”
Posted
技术标签:
【中文标题】laravel 5:找不到类“输入”【英文标题】:laravel 5 : Class 'input' not found 【发布时间】:2015-10-20 05:04:31 【问题描述】:在我的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
【问题讨论】:
【参考方案1】:它是Input
而不是input
。
This commit 从config/app.php
中删除了Input
外观定义,因此您必须手动将其添加到aliases
数组中,如下所示,
'Input' => Illuminate\Support\Facades\Input::class,
或者你可以根据需要直接导入Input
门面,
use Illuminate\Support\Facades\Input;
【讨论】:
如果我在 laravel 5.2 中对表单使用 laravelcollective 并在视图中使用 Form ,而不是像 Shafee 那样在路由中使用会怎样。 Form::text('name', Input::old('name'), array('class' => 'form-control'))
可以使用\Input全局访问
我需要如何或在哪里放置这个?将输入更改为 \Input(在表单标签内)不起作用.. Also 我没有使用Illumination\support\facades.. 但"laravelcollective/html": "5.2.*"
抱歉,我没有注意您之前的评论,但是在 HTML 中,您可以使用辅助函数 old(),它只是 Input::old() 的包装器
@NicolasV 你可以把它放在aliases
下面config/app.php
里面,就像Nvan's answer points out。【参考方案2】:
对于 laravel <
5.2:
打开config/app.php
并将Input
类添加到aliases
:
'aliases' => [
// ...
'Input' => Illuminate\Support\Facades\Input::class,
// ...
],
对于 laravel >=
5.2
将Input::
更改为Request::
【讨论】:
【参考方案3】:您可以在 folder\config\app.php
中添加外观
'Input' => Illuminate\Support\Facades\Input::class,
【讨论】:
【参考方案4】:在 Laravel 5.2 中 Input:: 被替换为 Request::
使用
Request::
添加到控制器或任何其他类的顶部
use Illuminate\Http\Request;
【讨论】:
【参考方案5】:首先你的问题是关于输入类的拼写,应该是输入而不是输入。而且您必须导入具有良好命名空间的类。
use Illuminate\Support\Facades\Input;
如果您希望它称为“输入”而不是“输入”,请添加:
use Illuminate\Support\Facades\Input as input;
其次,通过route.php存储到数据库中是一种肮脏的方式, 而且您没有处理数据验证。 如果发送的参数不是您所期望的,可能会出现 SQL 错误,这是由数据类型引起的。 您应该使用控制器与信息交互并通过控制器方法中的模型进行存储。
route.php 文件处理路由。 它旨在建立控制器和请求路由之间的链接。
了解控制器、中间件、模型、服务... http://laravel.com/docs/5.1/
如果您需要更多信息,解决问题,您可以加入社区:https://laracasts.com/
问候。
【讨论】:
【参考方案6】:如果您使用 Laravel 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');
【讨论】:
【参考方案7】:在 config/app.php 中声明别名:-
'Input' => Illuminate\Support\Facades\Input::class,
或者你可以根据需要直接导入Input Facade,
use Illuminate\Support\Facades\Input;
或
use Illuminate\Support\Facades\Input as input;
【讨论】:
【参考方案8】:在 larvel => 6 版本中:
在 larvel 6,7,8 版本中不再存在输入。使用Request
而不是Input
。
基于 Laravel docs,因为 6.x 版本的输入已被移除。
输入外观
影响的可能性:中等
Input
外观,主要是Request
的复制品 门面,已被拆除。如果您使用Input::get
方法,您 现在应该调用Request::input
方法。所有其他调用 输入外观可以简单地更新为使用Request
外观。
use Illuminate\Support\Facades\Request;
..
..
..
public function functionName(Request $request)
$searchInput = $request->q;
【讨论】:
【参考方案9】:'Input' => Illuminate\Support\Facades\Input::class
,添加到App.php中。
【讨论】:
【参考方案10】:这个干净的代码 sn-p 对我来说很好用:
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();
);
【讨论】:
【参考方案11】:在 config/app.php 中添加这个别名:-
'Input' => Illuminate\Support\Facades\Input::class,
【讨论】:
【参考方案12】:类的错误应该是Input
而不是input
【讨论】:
【参考方案13】:在 laravel 6 中已更改。See for more info here
不要在 app.php 和其他任何地方做任何事情,只需替换
input::get() 和 Request::input()
和
在您声明 Input、Validator、Hash 等的顶部,删除 Input 并添加 Request
使用类似的东西:
配置、数据库、文件、哈希、输入、重定向、会话、视图、验证器、请求;
【讨论】:
【参考方案14】: #config/app.php
'aliases' => [
...
'Input' => Illuminate\Support\Facades\Input::class,
...
],
#Use Controller file
use Illuminate\Support\Facades\Input;
==OR==
use Input;
阅读完整示例:https://devnote.in/laravel-class-input-not-found
【讨论】:
以上是关于laravel 5:找不到类“输入”的主要内容,如果未能解决你的问题,请参考以下文章
我在 Laravel 5.2 中收到错误“找不到类 'Predis\Client'”