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

Laravel9项目中PhpStorm检测squizlabs/php_codesniffer报new Vote类型错误

问题修复与优化写法

错误原因

你误用了Laravel的with()辅助函数——这个函数是用来做关联预加载的,参数得是关联名称(字符串)、关联数组或者闭包,不能传模型实例,所以PhpStorm和PHP_CodeSniffer才会报类型不匹配的错误。

修复方案&更优写法

直接用模型的静态方法获取表名就好,这是Laravel最推荐的方式:

$voteTable = Vote::getTable();

完全不用实例化模型,既解决了类型错误,代码也更简洁。

如果确实有特殊场景需要实例化模型,直接去掉with()包裹就行:

$voteTable = (new Vote)->getTable();

补充:with()的正确用法示例

这个函数是用来预加载Eloquent关联的,比如你要预加载QuizQualityResult的vote关联:

// 基础预加载
QuizQualityResult::with('vote')->get();

// 带条件的预加载
QuizQualityResult::with(['vote' => function ($query) {
    $query->where('status', 1);
}])->get();

内容的提问来源于stack exchange,提问作者mstdmstd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:30:53