为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel back() 或 redirect() 在 Traits 中不起作用

Laravel back() 或 redirect() 在 Traits 中不起作用

PHP
慕慕森 2022-09-03 14:46:16
我一直在我所有的特质中使用Laravel助手,假设助手功能在任何地方都有效。但是,虽然有些功能像工作,但我刚刚意识到这一点并且不起作用!abort()return redirect()return back()有人可以解释一下为什么吗?在这之后,我有点犹豫是否要相信Laravel...我的意思是,如果下次在某些地方不起作用(因为我不知道哪个功能在哪里工作),并且有些人做了他们不允许做的事情,该怎么办!abort(403)简化示例:namespace App\Http\Traits;trait TestTrait{    public function doBack(){        return back();    }    public function doRedirect(){        return redirect()->route('test');    }    public function doAbort(){        abort(403);    }}use App\Http\Traits\TestTrait;class TestController extends Controller{    use TestTrait;    public function testingBack(){        $this->doBack();    }    public function testingRedirect(){        $this->doRedirect();    }    public function testingAbort(){        $this->doAbort();    }}在上面的样品控制器中,方法有效,但不能!它们显示一个空页面。testingAbort()testingRedirect()testingBack()我假设我必须在控制器本身(而不是在Traits中)进行重定向,但这会导致控制器方法中出现大量条件代码的重复,我也不确定为什么会发生这种情况。
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

当您调用本地方法并期望控制器执行操作时,您将需要返回它,否则控制器函数将返回 null,而不是对特征返回执行操作。


public function testingBack(){

    return $this->doBack();

}


public function testingRedirect(){

    return $this->doRedirect();

}


public function testingAbort(){

    return $this->doAbort();

}

}


查看完整回答
反对 回复 2022-09-03
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信