Skip to main content

UpdateMembershipRequest

Form request for validating membership update payloads. Supports dto context for the membership id (reserved for callers; current rules do not depend on it).

Namespace

JobMetric\Rolix\Http\Requests\Membership\UpdateMembershipRequest

Overview

  • Partial updates via sometimes rules
  • Static rulesFor($input, $context) for dto()
  • setContext(array $context) stores context used by rules()
  • No withValidator — domain invariants stay in the Membership service

authorize() returns true.

Context

KeyTypical use
idMembership id when calling dto(..., ['id' => $membership->id])

Context is accepted for consistency with other Update requests; the published rulesFor list does not currently branch on it.

Validation Rules (rulesFor)

FieldRuleDescription
role_idsometimes|nullable|integer|exists:{rolix.tables.role},idChange assigned role
collectionsometimes|nullable|stringChange collection
is_ownersometimes|booleanChange owner flag
expired_atsometimes|nullable|dateSet or clear expiry
allowsometimes|arrayReplace membership allow list
allow.*string
denysometimes|arrayReplace membership deny list
deny.*string

Personable / memberable morphs are not updatable through this request.

Attributes

role_id, collection, is_owner, expired_at, allow, deny via rolix::base.fields.*.

withValidator

Not implemented.

Usage Examples

Change role and expiry

use JobMetric\Rolix\Facades\Membership;

Membership::update($membershipId, [
'role_id' => 5,
'expired_at' => '2026-12-31 23:59:59',
]);

Clear expiry and update overlays

Membership::update($membershipId, [
'expired_at' => null,
'allow' => ['billing.view'],
'deny' => ['billing.manage'],
'is_owner' => true,
]);

Controller

use JobMetric\Rolix\Http\Requests\Membership\UpdateMembershipRequest;
use JobMetric\Rolix\Facades\Membership;

public function update(UpdateMembershipRequest $request, int $id)
{
return Membership::update($id, $request->validated());
}

dto with context

$data = dto($payload, UpdateMembershipRequest::class, ['id' => $membership->id]);