public function login()
{
$errors = new MessageBag; // initiate MessageBag
$username = Input::get('email');
$password = Input::get('password');
return compact('username', 'password','email');
}
和 在 UserController.php
中 public function __construct(user $model)
{
$this->model=$model;
}
public function login()
{
$this->model->login();
if(filter_var($username, FILTER_VALIDATE_EMAIL)) {
$user = User::where('email',$request['email'])->first();
if($user && $user->email_active != 1)
{
$errors = new MessageBag(['email' => [__('auth.emailVerify')]]);
return Redirect::back()->withErrors($errors)->withInput(Input::except('password'));
}
}
}
实际上在用户模型中,我放了use UserTrait;
答案 0 :(得分:1)
你可能正在调用一个返回某些东西的方法,但你实际上并没有对返回做任何事情。 (从方法返回并不会将变量神奇地导入调用者范围)
$this->model->login(); // never assigning the result to anything
当然,您未定义$username
,因为在UserController@login
中没有名为$username
的变量。
这至少会得到username
密钥并将其分配给变量:
$data = $this->model->login();
$username = $data['username'];
答案 1 :(得分:0)
这不是特征的工作方式,它们不会神奇地填充缺失的变量。 在线
if(filter_var($username, FILTER_VALIDATE_EMAIL)) {
您使用的是$username
,但未设置。