我正在尝试通过Laravel项目中的继承对2个用户进行身份验证。
在我的迁移中,我只有1列可以为空,该列为email。 我希望通过该专栏对教授和校友进行双重身份验证,我也有两种注册簿,一种具有输入电子邮件,另一种没有。 在我的数据库中,我有2个用户,一个是教授,另一个校友,教授拥有电子邮件,另一个也有电子邮件,因为他们属于同一表,但该电子邮件在校友行中为NULL。
我正在尝试检查登录时该用户的电子邮件列是否为空,我的视图返回校友身份。 如果不为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
}
并使用exist()而不是count()。
如果您想知道,我现在只返回一个字符串以进行测试。
答案 0 :(得分:0)
尝试以下操作:
public function index()
{
$user = User::where('email', '=', Input::get('email'))->first();
if (empty($user)){
return view('alumn');
}else{
return view('professor');
}
}
您的视图文件必须位于resources / view目录中
alumn.blade.php
professor.blade.php
答案 1 :(得分:0)
您遇到的问题在您的条件内。 ($user == 'NULL')
和($user != 'null')
。如果User对象是以下字符串,则当前要检查的内容:"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
,则不能在双引号周围加上引号。
答案 2 :(得分:0)
如果没有数据,first()
方法将返回null
,因此请使用is_null()
像这样:
if ( is_null($user) ) {
return view('alumn');
}else{
return view('professor');
}
答案 3 :(得分:0)
仅供参考,first()
在数据库中没有数据时将为您返回null,因此希望对您有帮助
public function index()
{
$user = User::where('email', '=', Input::get('email'))->first();
if ( is_null($user) ) {
return view('alumn');
} else {
return view('professor');
}
}
答案 4 :(得分:0)
在我的情况下,上述所有答案均无效。 所以我这样做是为了让它变得值得。
public function index()
{
$user = Auth::user();
if ($user->email == ''){
return ('alumne');
}
else{
return ('professor');
}
print_r(Auth::user());
}
首先我打印了Auth :: user,以检查是否一切正常,然后尝试将身份验证保存在名为 user 的变量中。 然后我检查了有条件,一切都很好。