有没有办法在关系函数中传递参数?
我目前有以下代码:
public function achievements()
{
return $this->belongsToMany('Achievable', 'user_achievements')->withPivot('value', 'unlocked_at')->orderBy('pivot_unlocked_at', 'desc');
}
问题在于,在某些情况下,它不会获取unlocked_at列并返回错误。
我已经尝试过类似以下的操作:
public function achievements($orderBy = true)
{
$result = $this->belongsToMany (...)
if($orderBy) return $result->orderBy(...)
return $result;
}
并称之为:
$member->achievements(false)->(...)
但这样不起作用。有没有办法将参数传递给该函数或以任何方式检查是否正在使用pivot_unlocked_at
?
->get()
:$member->achievements(true)->get()->(...)
相当于$member->achievements->(...)
。 - alexrussell