代码之家  ›  专栏  ›  技术社区  ›  user3574492

Laravel无法从透视模型本身访问透视附加列

  •  1
  • user3574492  · 技术社区  · 7 年前

    我有一个叫做pivot的模型 UserTask 其中我有一个访问器函数:

    class UserTask extends Pivot implements HasMedia
    {
        use HasMediaTrait;
    
        public function getCompletedAttribute()
        {
            return $this->getMedia()->isEmpty() && $this->completed;
        }
    
    
    
        public function task()
        {
            return $this->belongsTo(Task::class);
        }
    
    }
    

    我在我的 Task 模型如下:

    class Task extends Model
    {
    
        public function users()
        {
            return $this->belongsToMany(User::class, 'user_task')->using('App\Models\UserTask')->withPivot('completed');
        }
    }
    

    我得到以下错误:

    “message”:“未定义属性:App\Models\UserTask::$已完成”,

    有人知道为什么会这样吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   vpalade    7 年前

    尝试此访问器功能:

    public function getCompletedAttribute($value)
    {
        return $this->getMedia()->isEmpty() && $value;
    }