laravel如何检查表中的记录连接到用户表

Posted

技术标签:

【中文标题】laravel如何检查表中的记录连接到用户表【英文标题】:laravel How to check record in table connect to users table 【发布时间】:2018-04-20 14:29:30 【问题描述】:

我是 laravel 的新手,也许这是一个奇怪的问题,如果两个条件无效,我不希望任何用户重定向到特定页面:

第一个 - 用户已经登录

第二个 - 在连接到用户表的客户表中(customer_id=user_id)检查该用户的包是否 == 1

所以我有两张桌子:

一个给用户

user_id
user_email
user_password

和客户表

customer_id
package number

如果用户已登录并且如果 customer_id=当前登录的用户 ID 和包 ==1,则重定向。希望任何人都可以帮助我。

我知道如何检查表用户,但如何检查表客户是否具有相同的客户 ID

     @if(auth()->user()->user_id== 0)

【问题讨论】:

客户和用户之间有关系吗? 在控制器中制作这种类型的条件并传递一个变量 是的,我有关系 您可以将建议的代码从答案设置到自定义中间件中,并使用 ['auth', 'customMiddleware'] 的组合来选择路线。 【参考方案1】:

你可以用这个。

在你的用户模型中

class User extends Model

    //bunch of codes

    public function customer()
    
        return $this->hasOne('App\Customers', 'customer_id', 'user_id');
    

那么在你的情况下

if(Auth::attempt(array('user_email' => $email, 'user_password' => $pass), true)
    && Auth::user()->customer->package_number == 1)
    //do some magic

【讨论】:

【参考方案2】:

试试这个:

//use Auth Facade...


if (Auth::check() && Auth::user()->customer->package_number == 1) 
    //redirect to destination
else
    //redirect to error page

【讨论】:

以上是关于laravel如何检查表中的记录连接到用户表的主要内容,如果未能解决你的问题,请参考以下文章

我不知道如何在Laravel中将表连接到另一个表

如何检查页面是不是已启动或用户是不是已连接到域

将一行连接到Mysql中另一个表中的多行

如何在 Laravel 中在一秒钟内发出并发请求时避免重复记录

Laravel如何验证一行中的数据,而不是检查整个表

Laravel Echo - 允许访客连接到出席频道