Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >自定义中间件检查模型自定义函数Laravel5.1返回的值时出错

自定义中间件检查模型自定义函数Laravel5.1返回的值时出错
EN

Stack Overflow用户
提问于 2016-06-10 04:49:37
回答 1查看 803关注 0票数 0

我有一个帐户电子邮件确认我的Laravel应用程序,然后我想检查何时用户试图登录,如果用户已激活他的帐户。

我发现了这个:https://laracasts.com/discuss/channels/general-discussion/how-to-test-if-a-user-which-tries-to-log-in-is-confirmed-yet

我有一个定制的模型函数isActivated,它只返回用户模型上的状态类型(布尔型,在西班牙语中名为estado )。

在我的用户模型上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public function isActivated()
{
    return $this->estado;
}

我创建了类似于上面提供的建议的链接的中间件,然后在App/Http/Kernel.php中注册为中间件路由

当我将中间件分配到我的路由时(而不是在我的控制器中创建构造函数,我希望这个中间件只是在登录控制器的post请求下)。

当我试图登录时,会抛出一个错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Fatal Throwable Error: 
Fatal Error: Call to a member function isActivated() on null

我的中间件看起来像链接。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php

 namespace App\Http\Middleware;

 use Closure;
 use Illuminate\Contracts\Auth\Guard;

 class RedirectIfNotMailActivated
{
/**
 * The Guard implementation.
 *
 * @var Guard
 */
protected $auth;

/**
 * Create a new filter instance.
 *
 * @param  Guard  $auth
 * @return void
 */
public function __construct(Guard $auth)
{
    $this->auth = $auth;
}
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 * @return mixed
 */
public function handle($request, Closure $next)
{
    if ( ! $this->auth->user()->isActivated()) {
        return redirect('/login')
            ->with('mensaje',
                   '¡Lo sentimos, no ha confirmado su cuenta aún!');
    } else {
        return $next($request);
    }
 }
}

有趣的部分:如果我在App/Http/中间件/Authenticate(auth中间件)中添加了中间件的handle功能的内容,然后我将一些路由分组并附加到这个中间件上,这将按预期工作(不允许未经确认的用户登录)。

问题是,我在用户类型的用户表(Admin和Customer)中有一个修饰关系,所以我将admins控制面板附加并分组到auth中间件中,因为我需要只为经过身份验证的用户和管理类型重新分配对控制面板的访问(客户用户类型不允许)。

限制只参与管理用户类型。

当然,这让客户用户类型可以登录,因为我没有任何东西,如果他的帐户被确认或没有。

我做错什么了。isActivated模型函数在添加到auth中间件中时工作正常,但当我在自定义中间件中使用同样的方法时,则不能工作。

谢谢..。

编辑的

我的中间件为我的登录控制器指定了post方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Route::post('/login', [
        'middleware' => 'activated.email',
        'uses' => 'loginController@store'
]);

PD:很抱歉,这不是我的第一语言,我的第一语言是

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-10 05:11:09

你对我们的逻辑有问题。您的登录路径不应该受到am激活用户的保护,因为中间件是在请求之前执行的,因此在您的情况下用户无法尝试登录,因此您将得到一个错误。

您可以做的是将您的isActivated()检查添加到身份验证中间件中,这样您就有了一个日志用户,$this->auth->user()就不会为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37748750

复制
相关文章
mysql自定义函数写法_mysql自定义函数返回多列值
1、先查看函数功能是否开启:show variables like ‘%func%’;
全栈程序员站长
2022/10/05
2.4K0
Golang 函数返回类型是接口时返回对象的指针还是值
Interface 是一组抽象方法(未具体实现的方法,仅包含方法名参数返回值的方法)的集合,如果实现了 interface 中的所有方法,即该类型就实现了该接口。
恋喵大鲤鱼
2019/06/14
8.1K0
函数出错返回的数据类型
返回NULL值有各种弊端,对此有一个比较经典的应对策略,就是应用空对象设计模式(Null Object Design Pattern)。
WindCoder
2020/04/09
2.2K0
MindSpore自定义模型损失函数
损失函数是机器学习中直接决定训练结果好坏的一个模块,该函数用于定义计算出来的结果或者是神经网络给出的推测结论与正确结果的偏差程度,偏差的越多,就表明对应的参数越差。而损失函数的另一个重要性在于会影响到优化函数的收敛性,如果损失函数的指数定义的太高,稍有参数波动就导致结果的巨大波动的话,那么训练和优化就很难收敛。一般我们常用的损失函数是MSE(均方误差)和MAE(平均标准差)等。那么这里我们尝试在MindSpore中去自定义一些损失函数,可用于适应自己的特殊场景。
DechinPhy
2021/06/24
9390
【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )
在 Python 函数中 , 通过 return 关键字 , 可以返回一个结果给调用者 , 这个返回结果就是 函数返回值 ;
韩曙亮
2023/10/11
7360
【Python】函数 ③ ( 函数返回值定义语法 | 函数返回多个返回值 | 代码示例 )
GaussDB(DWS)自定义函数返回多结果集
在使用GaussDB(DWS)过程中经常会创建自定义函数,总结了多结果集返回的使用方法。
hankleo
2021/07/08
1.4K0
C++函数返回结果为自定义类型
我看源码的时候,经常可以看到在一个函数的前面,就是在本身应该在放void,int这种的地方,却出现了指针,结构体,类等的东西。
云深无际
2022/11/29
1.4K0
C++函数返回结果为自定义类型
C语言自定义函数如何返回数组(上)?
最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str数组名(注意不需要加&,还有好多同学犯这个错
编程范 源代码公司
2018/04/18
3.4K0
C语言自定义函数如何返回数组(上)?
C语言自定义函数如何返回数组(下)?
通过上一篇的讲解,相信大家已经明白直接的return数组的问题以及原因了,今天我们将详细为大家讲解在函数中返回数组的常见办法。 此类问题,应用场景往往为了解决函数间相互通信,比如某个函数内处理的完的结果数据需要交接给另一个函数的情况,那么一般来说,总结有以下三种: 直接使用全局变量:这种方法最方便,但此方法打破了函数间的通信及封装的思想,所以不推荐使用,不在今天讨论范围之内。 通过堆区动态开辟内存解决:C语言中,我们通常用malloc来在堆区动态开辟内存,利用堆区“现用现开辟,用完手动收回”特点,实现灵活管
编程范 源代码公司
2018/04/18
2.7K0
C语言自定义函数如何返回数组(下)?
JS|函数的返回值
这个看似能输出结果,实则是在逻辑上是不合理的,我们函数是做某件事或者实现某种功能,而在上面的代码中,函数提供了‘aru’,结果自己却把该参数给输出了。这好比是鸡生了蛋,自己却把蛋给吃了。那我们吃蛋壳吗?所以,接下来我会介绍一种逻辑更严谨的代码。
算法与编程之美
2020/03/12
11.4K0
返回指针值的函数(2)
请自己理解,比较简单 /**对前面那个问题,输出有不及格成绩的学生的所有成绩**/ #include <stdio.h> #include <stdlib.h> int main() { float a[3][4]={{50,99,80,50},{55,60,85,90},{10,54,74,26}}; float *p; float *aa(float (*pt)[4]); int i; for(i=0;i<3;i++) { p=aa((
谙忆
2021/01/19
2.7K0
printf函数的返回值!
这样的题目第一眼看上去有一点懵,其实它考的就是printf函数的返回值,及输出字符的个数。 输出结果
lexingsen
2022/02/24
3.3K0
[Python基础06]函数的参数&返回值
我们通常在进行一些功能处理的过程中,需要执行一行或者多行代码来完成整个业务流程的处理,如:
周小董
2022/04/12
4K0
[Python基础06]函数的参数&返回值
小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值
abort函数是我们又新接触的一个函数,具体有什么作用?简单点说它可以终止视图函数的执行并且还可以返回给前端特定的信息。
Python进击者
2019/09/03
2.6K0
小白学Flask第六天| abort函数、自定义错误方法、视图函数的返回值
函数的变量+返回值
函数的变量: 局部变量 和 全局变量 Python中的任何变量都有特定的作用域 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量 在一个文件顶部定义的变量可供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量 (1)、局部函数: #!/usr/bin/python def fun(): x = 100 ##定义一个内部的函数是 x = 100,只在fun() 内部有效。 print x fun() 执行结果: [[e
老七Linux
2018/05/31
4.9K0
函数的return(返回值)
return之后,函数就停止,return之后的语句将不执行,但是php也不会报错。
十月梦想
2018/08/29
3.7K0
函数的多个返回值
def func1(): # return 值1,值2 --- return有一个作用是打断程序的运行 return 1 + 1 , 2 + 2, 3+4 num1,num2,num3 = func1() print(func1()) print(num1) print(num2) print(num3)
汪凡
2018/05/29
5.6K0
返回指针值的函数(1)
/**有a个学生,每个学生有b门课程的成绩。要求在用户输入学生序号以后, **/ #include <stdio.h> #include <stdlib.h> int main() { float *aa(int (*p)[4],int n); float a[3][4]={{50,99,80,50},{55,60,85,90},{10,54,74,26}}; float *pt; int k; scanf("%d",&k); pt=aa(a,k);
谙忆
2021/01/19
2.3K0
python函数的返回值
返回值:return 1.没有返回值     #不写return     #只写return:结束一个函数     #return None 2.有一个返回值     #可以返回任何数据类型     #只要返回就可以接收到     #如果在一个程序中有多个返回值,只执行一个(只要执行了return,函数就结束了) 3.有多个返回值     #用多个变量接受,有多少个返回值就有多少个变量     #用一个变量接受:接收到的是一个元祖(Python解释器)
py3study
2020/01/19
3.4K0
7.5 返回指针值的函数
例如“int *a(int x,int y);”a是函数名,调用它以后能得到一个int *型的指针,即整型数据的地址
小林C语言
2019/08/09
1.8K0

相似问题

使用返回自定义结构的函数时出错

15

自定义Laravel5.1中间件逻辑

13

Strapi:注册自定义中间件时出错

15

使用自定义激活函数创建模型时出错

132

检查返回int的函数时出错

54
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文