User::class, 'foreign_key' => 'user_id', 'assoc_foreign_key' => 'user_id' ]; $config['belongs_to']['range'] = [ 'class_name' => Course::class, 'foreign_key' => 'range_id', 'assoc_foreign_key' => 'Seminar_id' ]; $config['additional_fields']['subject_object']['get'] = 'getSubjectObject'; parent::configure($config); } public static function getUserSubscriptions($course_id, $user_id) { return self::findBySQL( "range_id = :range_id AND user_id = :user_id ORDER BY mkdate DESC", [ 'range_id' => $course_id, 'user_id' => $user_id ] ); } public function getSubjectObject(): ForumDiscussion | ForumTopic { return match ($this->subject) { 'topic' => ForumTopic::find($this->subject_id), 'discussion' => ForumDiscussion::find($this->subject_id) }; } }