允许管理员用户查看/查看其他用户类型吗? - php

我有一个包含2种类型的用户的Laravel Web应用程序:

顾客
管理员

根据他们的用户类型,他们可以看到并执行不同的操作。

顾客

以客户身份登录时,我的客户将看到不同的仪表板。

管理员

以管理员身份登录时,我可以在表中看到用户列表

例,

用户A
用户B
用户C
更多 …

目标:
我想查看在单击列表中的一个用户时看到的客户。

我无法解决这个问题。

海事组织

Auth::user()->type在这种情况下可以工作吗?

目标是在实际的Auth:user()->type == ‘customer’时将页面呈现为Auth::user()->type == ‘admin’。我不确定我要做什么。

我如何在Laravel中做类似的事情?

参考方案

您可以尝试在我的一个项目中所做的工作-实现非常简单,也许您也可以使用它。

我们的AuthController中还有其他操作,允许用户切换到其他用户并记住会话中的当前用户ID:

public function switchUser($userId)
{
    // disallow switched users from switching again
    if (Session::get('previous_user')) App::abort(403);

    $user = User::findOrFail($userId);

    Session::set('previous_user', Auth::id());

    Auth::login($user);

    return redirect('some path');
}

第二部分是自定义的注销功能,对于切换的用户,该功能将其切换回其原始用户帐户,而不是注销:

public function getLogout()
{
    if ($previousUser = Session::get('previous_user')) {
        Session::remove('previous_user');
        Auth::loginUsingId($previousUser);

        return redirect('some path');
    }

    Auth::logout();

    return redirect('some path');
}

有了这种逻辑,您就可以切换到其他用户并返回。您可能需要添加权限检查,以便只有管理员才能执行此操作等,将列表中的客户链接到切换URL,无论如何,功能的核心在上面的代码中。

检查对象是否已在集合中-Laravel - php

当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…

Laravel打印日志 - php

我正在尝试在控制台上打印日志:我输入了:use Log; 然后在控制器中使用 Log::info('test log'); 但它不打印任何日志。 参考方案 我认为您需要在运行后检查storage/logs/laravel.logLog::info('test log'); 希望这对您有帮助

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

如何在部署中管理Laravel队列? - php

我有一个用于Laravel的HA架构,具有多个Web和队列服务器以及零停机时间部署。它依赖Redis作为队列驱动程序。问题在于,在部署群集的滚动更新时,部署新版本的代码时,无法阻止新队列工作者处理来自旧代码版本的作业。Laravel中是否可以过滤来自与队列工作器不同的代码版本的作业? 参考方案 我看到2个解决方案,即使我从未尝试过,也不能保证它能正常工作,因…