所以我有以下关系结构:
>>> 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);
}
}
):
以下是我的枢轴模型中的函数:
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();
}