You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10策略类Intelephense报错:预期bool类型却返回Response

解决Intelephense提示“Expected type 'bool'. Found 'Illuminate\Auth\Access\Response'”报错
  • 问题根源:方法的返回类型声明与实际返回值类型不匹配。你声明方法返回bool类型,但实际返回的是Illuminate\Auth\Access\Response实例(Response::allow()和Response::deny()的返回值),导致Intelephense触发类型检测报错。

  • 解决步骤:

    1. 确保已导入Illuminate\Auth\Access\Response类(如果尚未导入)
    2. 将方法的返回类型从bool修改为Response

修正后的代码示例:

use Illuminate\Auth\Access\Response;

public function create(User $user): Response
{
    $roles = $user->roles->pluck('id')->toArray();
    return in_array(Role::TRAINING_MANAGER, $roles)
        ? Response::allow()
        : Response::deny();
}

Laravel策略类的授权方法支持返回布尔值或Response对象,后者可用于返回自定义授权拒绝消息,这种写法符合Laravel规范,仅需修正返回类型声明即可消除报错。

内容的提问来源于stack exchange,提问作者Ayenew Yihune Demeke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:03:01