如何从Laravel 5.5中的枢轴模型访问相关数据?

时间:2018-02-26 10:47:37

标签: php laravel model pivot laravel-5.5

所以我有以下关系结构:

>>> countries = ['Australia', 'Austria'] >>> country = '#Austrian_man#' >>> next((c_name for c_name in countries if c_name in country), 'Unknown') 'Austria' >>> country = '#AustrTYPO_man#' >>> next((c_name for c_name in countries if c_name in country), 'Unknown') 'Unknown' - User - UserTask

我的透视模型(Task)需要从UserTask模型访问属性。

所以我的Task模型中有一个访问器函数,我需要访问UserTask属性。

任何人都知道如何访问它?

注意:

我无法在父模型中设置访问者,因为我需要使用在枢轴模型上设置的媒体功能。

以下是我如何定义关系:

任务:

Task->document_upload_required

UserTask:

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


}

用户:

class UserTask extends Pivot implements HasMedia
{
    use HasMediaTrait;

    public function getCompletedAttribute()
    {
        return "Need to access parent attribute here";
    }

}

更新

这是我尝试从以下位置获取数据的数据透视表(class User extends Authenticatable { use HasApiTokens, Notifiable, Billable; public function tasks() { return $this->belongsToMany(Task::class); } } ):

enter image description here

以下是我的枢轴模型中的函数:

UserTask

以下是我如何调用加入模型:

public function isComplete() {

        if($this->task->document_upload_required) {
            return $this->getMedia()->isEmpty() && $this->completed;
        } else {
            return $this->completed;
        }
    }


    public function getCompletedAttribute()
    {
        return $this->isComplete();
    }

0 个答案:

没有答案