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

Laravel Voyager自定义关联属性失效:full_name列不存在报错解决

解决Laravel Voyager自定义关联属性查询错误的方案

问题原因

你设置的$additional_attributes = ['full_name']会让Voyager自动将full_name加入数据库查询字段,但这个属性是通过访问器生成的虚拟字段,数据库中并不存在,因此触发了「字段不存在」的SQL错误。另外你代码里的访问器存在笔误:$this->_name应该是$this->l_name。

修复步骤

  1. 修正模型代码
    移除$additional_attributes配置,同时修正访问器的拼写错误:

    // PlatformCategory.php
    public function getFullNameReadAttribute()
    {
        return "{$this->f_name} {$this->l_name}";
    }
    
  2. 配置Voyager后台显示
    进入Voyager的Bread管理界面,找到PlatformCategory对应的Bread设置:

    • 在「Browse」标签页的「Fields to Display」中添加full_name
    • 如果需要在详情页或编辑页展示,同样在对应标签页的字段列表中添加full_name

原理说明

Voyager会自动识别模型中以getXxxReadAttribute命名的访问器,无需额外声明additional_attributes。直接在后台配置使用full_name即可读取到访问器生成的虚拟属性,不会触发数据库查询该字段的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:47:03