如何检查用户邮箱是否为空?



我正在尝试通过Laravel项目中的继承来验证2个用户。

在我的迁移中,我只有 1 列可以为空,该列是电子邮件。 通过该专栏,我希望对教授和校友进行双重身份验证,我还有 2 种类型的寄存器,一种有输入电子邮件,另一种没有。 在我的数据库中,我有 2 个用户,一个是教授,另一个是校友,教授有电子邮件,另一个也有电子邮件,因为他们属于同一个表,但该电子邮件在校友行中为 NULL。

我正在尝试在登录时检查该电子邮件列的用户是否为空,我的视图返回校友。 如果它不为空,我的观点返回教授。

我试图在我的Laravel控制器中检查电子邮件是否为空。

这是我的代码

public function index()
{
$user = User::where('email', '=', Input::get('email'))->first();
if ($user == 'NULL'){
return ('alumn');
}
if ($user != 'null'){
return ('professor');
}
}

我的Laravel路由器看起来像这样。

Route::get('/home', 'HomeController@index')->name('home');

我也在我的控制器中尝试了这个功能,而不是另一个。

if (User::where('email', '=', Input::get('email'))->count() > 0) {
// user found
}

并使用 exists() 而不是 count()。

如果您想知道,我现在只返回一个字符串以进行测试。

您遇到的问题在您的条件范围内。($user == 'NULL')($user != 'null').如果用户对象是以下字符串,则当前正在检查的内容:"NULL"

这些不是检查 null 的方式。有许多选项可以工作。

if (empty($user)){
return view('alumn');
}
// OR
if (!$user) {
return view('alumn');
}
// OR
if (is_null($user)) {
return view('alumn');
}

会工作。您也可以使用is_null.如果要检查用户是否等于null不能在 null 两边加上引号。

如果没有数据,first()方法将返回null,因此请使用is_null(),如下所示:

if ( is_null($user) ) {
return view('alumn');
}else{
return view('professor');
}

仅供参考,当数据库中没有数据时,first()会返回 null,所以我希望这会对您有所帮助

public function index()
{
$user = User::where('email', '=', Input::get('email'))->first();
if ( is_null($user) ) {
return view('alumn');
} else {
return view('professor');
}
}

上面的所有答案在我的情况下都不起作用。 所以我这样做是为了让它变得值得。

public function index()
{
$user = Auth::user();
if ($user->email == ''){
return ('alumne');
}
else{
return ('professor');
}
print_r(Auth::user());
}

首先,我打印了我的 Auth::user 以检查一切是否正常,然后我尝试将身份验证保存在名为user的变量中。 然后我检查了有条件的,一切正常。

public function index() {
$user = User::where('email', '=', Input::get('email'))->first();
if (empty($user)) {
return view('alumn');
} else {
return view('professor');
}
}

相关内容

  • 没有找到相关文章

最新更新