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

如何用PHPDoc标记Laravel模型的user_id属性为废弃?

解决方案

针对PHP Intelephense的解析规则,有两种可靠的实现方式:

方式一:类级PHPDoc分开标注标签

将@deprecated作为独立标签行,明确指向user_id属性,同时保留@property定义类型:

/**
 * App\Task\Models\Task
 *
 * @property null|int $user_id
 * @deprecated $user_id 属性已废弃,请使用你的替代方案
 */

这种写法下,Intelephense会正确识别废弃标记,访问$task->user_id时会弹出废弃提示。

方式二:属性级文档块标记

为user_id单独添加属性级文档块,直接声明废弃状态(Eloquent动态属性不受此声明影响):

/**
 * App\Task\Models\Task
 */
final class Task extends Model
{
    protected $guarded = ['id'];

    protected $casts = [
        'user_id' => 'int',
    ];

    protected $fillable = [
        'user_id',
    ];

    /**
     * @deprecated 该属性已废弃,请使用指定替代方案
     * @var null|int
     */
    public $user_id;
}

无效写法的原因

PHP Intelephense对PHPDoc标签的解析要求严格,不支持在同一行混合@property和@deprecated标签,必须拆分或使用属性级文档块才能被正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:12:43