Christian Kruse: Funktion mehrfach verwenden

Beitrag lesen

Moin Baba,

Vorstellbar wäre auch so etwas... […]

Da solltest du direkt über ein ORM nachdenken. Da kann man das viel schöner lösen, in Rails ist z.B. das hier ein von mir häufig eingesetztes Feature:


@threads = CfThread.where(forum_id: current_forum.forum_id)
unless current_user.root?
  @threads = @threads.where(deleted: false)
end

@threads = standard_permissions(@threads)
@threads = @threads.order('created_at DESC').all

standard_permissions verändert das Query-Objekt dann nochmal, indem es einen eager load hinzufügt und auf Zugriffsrechte prüft:


def standard_permissions(query)
  return query.preload(:forum).where("EXISTS(SELECT user_id FROM forum_permissions WHERE permission = 'read' AND user_id = ?)", current_user.user_id)
end

Solche ORMs gibt es auch für PHP, z.B. Doctrine.

LG,  CK

P.S.: Disclaimer: das ist nicht der wirklich verwendete Code, nur das Schema wie ich das handhabe ;)