好的,所以我是Laravel的新手,我正在开展一个新的测试项目。我在HomeController中编写表单处理函数,而且我调用的每个内置函数都会收到Undefined错误。我在PHPStorm 8工作,我甚至安装了一个新的Laravel项目,并将我的视图复制回新项目,而不是更改任何其他Laravel配置文件。
例如:
public function addUser()
{
$input = Input::all();
$rules = array('first_name' => 'required',
'last_name' => 'required',
'home_location' => 'required',
'username' => 'unique:username|required',
'password' => 'required');
$valid = Validator($input, $rules);
if ($valid -> passes())
{
$user = New User();
$user->first_name = $input['first_name'];
$user->last_name = $input['last_name'];
$user->home_location = $input['home_location'];
$user->username = $input['username'];
$password = $input['password'];
$password = Hash::make($password);
$user->password = $password;
$user->save();
return Redirect::to('admin/');
} else {
return Redirect::to('admin/users/')->withInput()->withErrors($valid);
}
}
在此块中,输入,验证器,将所有报告作为错误传递,保存和重定向。
任何人都知道世界上哪些是错的?
答案 0 :(得分:0)
听起来您的控制器位于命名空间中。如果这是Laravel 5项目,则默认HomeController
将命名为App\Http\Controllers
。要访问命名空间之外的类,您需要完全限定它们(例如\Input::all()
),或者您需要在use
语句中指定类:
<?php namespace App\Http\Controllers;
use Input;
// etc.
class HomeController extends Controller {
我看到的其他可能导致错误的事情:
// missing "new" keyword:
// $valid = Validator($input, $rules);
$valid = new Validator($input, $rules);
如果这是Laravel 5,您的用户模型可能是命名空间,所以您也需要它。
$user = new \App\User();