Laravel 5.4 Auth立面不工作。身份验证中间件功能正常。如预期的那样,对受保护路由的调用会生成登录页面。格式错误的凭据会产生预期的错误。正确的凭据会产生正确的页面。注释掉“使用照明\支持\门面\Auth;”这一行会产生“未找到类'应用\Http\控制器\管理员\Auth'”的错误。
具体来说,Auth::check()产生false,而Auth::user()不返回任何内容,尽管登录成功。调用这些实现中的任何一个都不会产生错误。
这段代码在Laravel 5.2中运行良好。我所知道的与过程的唯一偏差是,在迁移到Laravel 5.4期间,我没有在新的Laravel实现中运行命令“php artisan make: auth”。
在Bing或stackoverflow内部搜索引擎中搜索“laravel 5.4 auth facade不起作用”不会产生相关结果。
相关代码显示如下:
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\User;
use App\Models\Admin;
use App\Models\Role;
use App\Models\Role_user;
use App\Models\Client;
use App\Models\Contact;
use App\Models\PublicPages;
use App\Models\Survey_question;
use App\Models\Survey_item;
use App\Models\Survey_project;
use App\Models\State;
use App\Models\Test_post;
use App\Models\Registration;
use Hash;
use Redirect;
use DB;
use Illuminate\Support\Facades\Auth;
use App\Classes\RoleHelper;
use App\Classes\CommonCode;
class AdminController extends Controller
{
var $obj_logged_in_user;
var $arr_logged_in_user;
var $bool_has_role;
var $roleHelper;
//organization of function
// 1. __construct
// 2. index
// get, alphabetically
// post, alphabetically
public function __construct(
Role_user $role_user, RoleHelper $roleHelper, Request
$request)
{
$this->middleware('auth');
echo "<pre>";
echo "admin controller, line 50<br>";
print_r($request->user);
echo "</pre>";
// line 49 (request->user) produces nothing
if (Auth::check())
{
$this->middleware('role:admin');
$this->obj_logged_in_user = Auth::user();
print_r($this->obj_logged_in_user);
// line 58 (print_r) produces nothing
$this->arr_logged_in_user = $roleHelper->prepare_logged_in_user_info($this->obj_logged_in_user);
} // end if Auth::check()
} // end __construct function
总之,我希望Auth::check()返回准确的结果,Auth::user()返回登录的用户对象。先谢谢你。
如果要在\u construct()
方法中使用Auth
函数,则需要将其传递给$this-
public function __construct(Role_user $role_user, RoleHelper $roleHelper)
{
$this->middleware('auth');
$this->middleware('role:admin');
$this->middleware(function ($request, $next) use ($role_user, $roleHelper) {
if (Auth::check()) {
$this->obj_logged_in_user = Auth::user();
$this->arr_logged_in_user = $roleHelper->prepare_logged_in_user_info($this->obj_logged_in_user);
}
return $next($request);
});
}
另外,仅供参考,您可能会发现使用Laravel附带的
dump()
或dd()
函数更容易。而不是写:
echo "<pre>";
echo "admin controller, line 50<br>";
print_r($request->user);
echo "</pre>";
你可以写:
dump('admin controller, line 50', $request->user);
https://laravel.com/docs/5.4/helpers#method-dd
希望这能有所帮助!
在寻找解决方案后,我没有找到任何解决我的问题。 我有一些提升,在我的应用程序的很大一部分产生阴影。 但在一个特定的地方,我不能使它工作。 (我在下面的图片上放了一个箭头) 工具栏下方的白色区域是,它显示
聊得挺开心,但只面了15分钟,感觉过的希望不大。 面试官长得像 up主 阿沛不开心 ,看着他我总想笑 1. 自我介绍 2. 为什么只实习了一个月 感觉每个面试官都会问一嘴 3. 腾讯犀牛鸟开源人才培养计划的性质 3.1 Tencenten Tiny运行在什么架构上 3.2 为什么要区分用户态和内核态 3.3 cpu怎么知道当前二进制代码的权限 3.4 如果我在用户态的程序直接编写汇编或者二进制代码
笔试: 9.5 一面:9.7 线上 总共20min 自我介绍三分钟 主要是问基本的算法八股 比如怎么防止过拟合 dropout 这种 bn ln区别,平常使用过得算法模型这些 总体来讲体验感不错 大概一周后通知了第二次面试 二面:9.21 线下 总共30min 自我介绍三分钟 主要问我简历中的一段科研经历(和医院合作的项目) 问unet transformer 等基础 最重要的是 问思想,如果是落
我有一个Spring Boot Application ThymeLeaf,带有@RestController和@Controller,嵌入式tomcat一切正常,但当我将带有war文件的应用程序部署到Tomcat 8.5@Controller类不工作@RestController工作正常,当我使用@Controller访问任何带有控制器的页面时,我有404错误。 这是我的pom.xml: 这是我
问题内容: 我有一个非常轻量级的作业,应在触发后立即执行,而不是等待一个小时才能完成当前作业。 据我了解,一项 轻量级 任务就是我想要的。它将为该任务创建一个临时执行程序。 我怎样才能使工作成为举重运动员? 问题答案: 试试这个FlyWeightProject插件。它是在Flyweight中运行的Freestyle类型的扩展。
我试图详细学习JavaEE7,但我在从数据库中获取记录并在JSF页面上显示它们方面遇到了问题。 我使用Wildfly10.1.0和Oracle XE11。我创建了以下数据源: 在JBoss的管理接口中的连接测试是成功的。 这是我的: 当我通过运行WildFly,并通过部署我的应用程序时,它可以工作。 当我在Eclipse中启动服务器并尝试使用相同的命令部署应用程序时,它失败了--因为我添加了JPA