Bir ilişki işlevine bir parametreyi iletmek mümkün mü?Laravel: İlişki İşlevine Geçiş Parametresi?
public function achievements()
{
return $this->belongsToMany('Achievable', 'user_achievements')->withPivot('value', 'unlocked_at')->orderBy('pivot_unlocked_at', 'desc');
}
sorun bazı durumlarda, bu unlocked_at sütunu getirme gelmediğini ve bu hata verir:
Aşağıdaki şu anda var.
public function achievements($orderBy = true)
{
$result = $this->belongsToMany (...)
if($orderBy) return $result->orderBy(...)
return $result;
}
Ve diyoruz:
ben böyle bir şey yapmaya çalıştık
$member->achievements(false)->(...)
Ancak bu işe yaramaz. Parametrelere bu işleve veya pivot_unlocked_at
'un kullanılmakta olup olmadığını kontrol etmenin bir yolu var mı?
Söylediklerinizi yapmakta fayda var. İlişki fonksiyonlarının, özellikler üzerinde bir yöntem olarak adlandırılırsa farklı davranmasına rağmen, hatırlamanız gerekir. Bunları özellik olarak kullanırsanız sonuç kümesi (Koleksiyon) alırsınız, ancak bunları yöntem olarak çağırırsanız bir sorgu oluşturucu alırsınız. Onlara parametreler iletmek istiyorsanız, onları yöntem olarak çağırıyor olmalısınız, bu yüzden arama kodunuzda bir '-> get()' yaptığınızdan emin olun: '$ üye-> başarılar (doğru) -> get() -> (...) '' $ member-> achievements -> (...) 'ile eşdeğer olacaktır. – alexrussell
awsm @alexrussell. bana bir baş ağrısı kurtardı .... –
2014 benim tavsiyem sevindim hala alakalı :) – alexrussell