> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel-Updates Oktober 2026

> Die Updates von Laravel 13 und den offiziellen Produkten im Oktober 2026. QUERY-Routen, Schutz vor veralteten Replica-Lesezugriffen, Schedules auf einem einzigen Server, Fake-Prüfungen über Eigenschaften, die Resend-Integration in Cloud und PHP-Update-Hinweise in Forge.

Im Oktober 2026 kamen Funktionen hinzu, mit denen Sie steuern, wie Anfragen formuliert werden, wohin Datenbank-Lesezugriffe gehen und wie Schedules auf mehreren Servern laufen. Laravel Cloud vereinfacht den Mailversand und die Einrichtung geplanter Befehle, und in Forge lassen sich PHP-Sicherheitsupdates und fehlgeschlagene Provisionierungen leichter verfolgen.

Diese Seite ist ein monatlicher Bericht auf Grundlage des offiziellen Blogbeitrags „Laravel October Product Updates“ vom 4. November und der Oktober-Einträge im offiziellen Framework-Changelog. Die Primärquellen wurden am 7. November 2026 geprüft. Der Framework-Teil behandelt nur Laravel 13. Releases aus dem November sind nicht enthalten.

Quellen:

* [Laravel October Product Updates](https://laravel.com/blog/laravel-october-product-updates)
* [Laravel Framework changelog — October 2026](https://laravel.com/framework/docs/changelog#log-2026-10)
* [Laravel Framework changelog RSS](https://laravel.com/rss/oss-changelog)

## Laravel Framework

### Releases im Oktober

Zusätzlich zu den wichtigsten neuen Funktionen im offiziellen Changelog wurden Datum und Version anhand der Release Notes geprüft.

| Release | Veröffentlicht | Wichtigste Änderungen |
| - | - | - |
| [v13.35.0](https://github.com/laravel/framework/releases/tag/v13.35.0) | 6. Oktober | Eigenschaftsprüfung für Fakes, Worker-Speicher in Prozent, Markdown-Responses, `alwaysOnOneServer()`, QUERY-Routen. |
| [v13.36.0](https://github.com/laravel/framework/releases/tag/v13.36.0) | 13. Oktober | OLAP-Ausführung mit Vitess, Builder für bestehende Validierungsregeln. |
| [v13.37.0](https://github.com/laravel/framework/releases/tag/v13.37.0) | 16. Oktober | Option strict für `Rule::numeric()`, Behebung der Race Condition bei kombiniertem `onOneServer()` und `withoutOverlapping()`. |
| [v13.38.0](https://github.com/laravel/framework/releases/tag/v13.38.0) | 20. Oktober | `PreventStaleDatabaseReads`, `Connection::usingWritePdo()`. |
| [v13.39.0](https://github.com/laravel/framework/releases/tag/v13.39.0) | 27. Oktober | `RefreshDatabase` setzt nach dem Test alle Transaktionsebenen zurück, Korrektur für fälschlich erfolgreiches `assertSeeText('0')`. |

Im Folgenden werden die neun Punkte aus dem offiziellen Changelog ausführlich vorgestellt. Kleinere Korrekturen und Abhängigkeitsänderungen finden Sie in den jeweiligen Release Notes.

### Suchen mit Request-Body über QUERY-Routen definieren

Mit v13.35.0 kam `Route::query()` für die HTTP-Methode `QUERY` hinzu. Sie können Routen definieren, die Suchbedingungen im Request-Body statt im GET-Query-String empfangen.

```php theme={null}
use App\Http\Controllers\SearchProductsController;
use Illuminate\Support\Facades\Route;

Route::query('/products/search', SearchProductsController::class);
```

Auch `Route::any()` trifft auf QUERY-Anfragen zu, und die Routenliste erkennt diese Methode. Der `SearchProductsController` oben steht für einen Invokable Controller Ihrer Anwendung, der die Suche implementiert.

> [!WARNING]
>
> QUERY-Routen in der Middleware-Gruppe `web` unterliegen der CSRF-Prüfung. Gehen Sie nicht davon aus, dass Sie die Prüfung wie bei GET auslassen können, nur weil es eine Suche ist. Senden Sie das CSRF-Token mit.

Primärquellen: [Register QUERY Routes](https://laravel.com/framework/docs/changelog#october-2026-register-query-routes), [offizielle Laravel 13 routing.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/routing.md#available-router-methods). Verwandte Seiten: [Routing](https://kawax.biz/de/routing.md), [CSRF-Schutz](https://kawax.biz/de/csrf.md)

### Veraltete Lesezugriffe auch in späteren Anfragen nach einem Schreibvorgang vermeiden

Bei Datenbanken mit getrenntem Lesen und Schreiben kann ein Lesezugriff direkt nach einer Änderung an eine noch nicht synchronisierte Read Replica gehen. Die bestehende Option `sticky` gilt nur innerhalb derselben Anfrage. Die Middleware `PreventStaleDatabaseReads` aus v13.38.0 schützt zusätzlich die folgenden Anfragen derselben Session für einen bestimmten Zeitraum.

Importieren Sie in `bootstrap/app.php` die Klasse `Illuminate\Foundation\Http\Middleware\PreventStaleDatabaseReads` und fügen Sie sie im Callback von `withMiddleware()` mit `$middleware->web(append: [PreventStaleDatabaseReads::class]);` hinzu. Die Funktion ist nicht automatisch aktiv.

Die Middleware speichert den Zeitpunkt von Schreibvorgängen auf die Standard-Datenbankverbindung in der Session. Standardmäßig leitet sie Lesezugriffe dieser Verbindung für 2 Sekunden nach einem Schreibvorgang an die Write-Datenbank. Den Zeitraum ändern Sie, indem Sie statt der Klasse zum Beispiel `PreventStaleDatabaseReads::for(5)` registrieren.

```mermaid theme={null}
sequenceDiagram
    participant User as Nutzer
    participant App as Laravel-<br>App
    participant Session as Session
    participant Write as Write DB
    participant Read as Read replica
    User->>App: Änderungsanfrage
    App->>Write: Daten schreiben
    App->>Session: Schreibzeitpunkt speichern
    User->>App: Nächste Anfrage derselben Session
    App->>Session: Zeit seit dem Schreiben prüfen
    alt Innerhalb der 2-Sekunden-Schutzfrist
        App->>Write: Daten lesen
    else Nach der Schutzfrist
        App->>Read: Übliches Leseziel verwenden
    end
```

Da sie die Session nutzt, muss sie nach `StartSession` laufen. Sie schaltet keine Lesezugriffe anderer Sessions oder anderer Datenbankverbindungen um und erkennt auch nicht, wann die Replica fertig synchronisiert ist.

Primärquellen: [Avoid Stale Reads After Database Writes](https://laravel.com/framework/docs/changelog#october-2026-avoid-stale-reads-after-database-writes), [offizielle Laravel 13 database.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/database.md#preventing-stale-database-reads). Verwandte Seiten: [Datenbank](https://kawax.biz/de/database.md), [Session](https://kawax.biz/de/session.md)

### Nur bestimmte Vorgänge aus der Write-Datenbank lesen

Das ebenfalls in v13.38.0 hinzugefügte `Connection::usingWritePdo()` schaltet das Leseziel der Verbindung nur während der Ausführung des Callbacks auf die Write-Datenbank um. Es eignet sich, wenn Sie wichtige Lesezugriffe in der Anwendung gezielt markieren möchten, statt eine ganze Session zu schützen.

```php theme={null}
use Illuminate\Support\Facades\DB;

$users = DB::connection()->usingWritePdo(
    fn ($connection) => $connection->table('users')->get()
);
```

Es gilt auch für Eloquent-Abfragen und Relationsabfragen über dieselbe Verbindung. Es gibt das Ergebnis des Callbacks zurück und stellt die vorherige Leseeinstellung auch bei einer Exception wieder her, sodass die Umschaltung nicht in nachfolgenden Code übergeht.

Primärquellen: [Temporarily Read from the Write Database Connection](https://laravel.com/framework/docs/changelog#october-2026-temporarily-read-from-the-write-database-connection), [offizielle Laravel 13 database.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/database.md#using-the-write-connection-for-reads)

### Schedules gesammelt auf einem einzigen Server ausführen

Damit beim Betrieb des Schedulers auf mehreren Servern seltener ein `onOneServer()` vergessen wird, kam mit v13.35.0 `Schedule::alwaysOnOneServer()` hinzu. Rufen Sie es in `boot()` des `AppServiceProvider` auf, um es auf alle betroffenen Schedules auf einmal anzuwenden.

```php theme={null}
use Illuminate\Support\Facades\Schedule;

Schedule::alwaysOnOneServer();
```

Dieser Standard gilt erst, wenn Sie ihn aufrufen. Geplante Closures ohne Namen sind ausgenommen und laufen weiterhin auf jedem Server.

> [!NOTE]
>
> `onOneServer()` benötigt einen zentralen Cache, den alle Server gemeinsam nutzen. Die offizielle Dokumentation nennt die Treiber `database`, `memcached`, `dynamodb` und `redis`. Die Einstellung allein stellt noch keine serverübergreifende Sperrinfrastruktur bereit.

Primärquellen: [Run Scheduled Tasks on One Server by Default](https://laravel.com/framework/docs/changelog#october-2026-run-scheduled-tasks-on-one-server-by-default), [offizielle Laravel 13 scheduling.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/scheduling.md#running-tasks-on-one-server). Verwandte Seite: [Task-Scheduling](https://kawax.biz/de/scheduling.md)

### Dispatches in Fakes über Eigenschaften prüfen

Seit v13.35.0 können Sie den Fakes für Queue, Bus, Event und Notification ein Array erwarteter Eigenschaften übergeben. Für einfache Attributvergleiche müssen Sie nicht mehr jedes Mal einen Callback schreiben.

Mit einem Job `ShipOrder`, der eine öffentliche Eigenschaft `order` hat, und einem im Test vorbereiteten `$order` prüfen Sie zum Beispiel so:

```php theme={null}
use App\Jobs\ShipOrder;
use Illuminate\Support\Facades\Queue;

Queue::fake();

ShipOrder::dispatch($order);

Queue::assertPushed(ShipOrder::class, ['order' => $order]);
```

Alle angegebenen Eigenschaften müssen übereinstimmen. Werte werden strikt verglichen, Eloquent-Modelle jedoch mit `is()`, sodass auch eine andere Instanz desselben Modells passt. Fakes prüfen den Dispatch, nicht das Ergebnis der Ausführung des Jobs selbst.

Primärquellen: [Assert Fake Dispatches by Their Properties](https://laravel.com/framework/docs/changelog#october-2026-assert-fake-dispatches-by-their-properties), [offizielle Laravel 13 queues.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/queues.md#testing). Verwandte Seiten: [Queues](https://kawax.biz/de/queues.md), [Mocking](https://kawax.biz/de/mocking.md)

### Speichergrenze von Workern in Prozent angeben

Seit v13.35.0 akzeptiert `--memory` von `queue:work` einen Prozentsatz von PHPs `memory_limit`. Sie können die Beendigungsschwelle des Workers an die PHP-Einstellung anpassen, ohne für jede Umgebung einen festen MB-Wert neu zu berechnen.

```shell theme={null}
php artisan queue:work --memory=60%
```

Es ist kein Prozentsatz des gesamten Speichers des Hosts oder Containers. Wenn PHPs `memory_limit` unbegrenzt (`-1`) ist, verwenden Sie statt eines Prozentsatzes einen MB-Wert. Den Neustart eines an der Schwelle beendeten Workers übernimmt eine Prozessüberwachung wie Supervisor.

Primärquellen: [Set Queue Worker Memory Limits as Percentages](https://laravel.com/framework/docs/changelog#october-2026-set-queue-worker-memory-limits-as-percentages), [offizielle Laravel 13 queues.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/queues.md#resource-considerations)

### Markdown mit eigenem Content-Type zurückgeben

Mit v13.35.0 kam `markdown()` zur Response-Factory hinzu. Es gibt einen Markdown-Inhalt als `text/markdown` zurück, und Sie können auch Statuscode und zusätzliche Header angeben.

```php theme={null}
return response()->markdown("# Report\n\nMonthly summary", 200, [
    'Cache-Control' => 'no-store',
]);
```

Sie können es mit Logik kombinieren, die das Antwortformat auswählt, etwa `wantsMarkdown()`. Es wandelt Markdown nicht in HTML um, sondern ist eine API, um Markdown selbst als Antwort auszuliefern.

Primärquellen: [Return Markdown Responses](https://laravel.com/framework/docs/changelog#october-2026-return-markdown-responses), [offizielle Laravel 13 responses.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/responses.md#markdown-responses). Verwandte Seite: [Responses](https://kawax.biz/de/responses.md)

### Analyseabfragen mit Vitess im OLAP-Modus ausführen

Mit v13.36.0 kamen `isVitess()` und `olap()` zu MySQL-Verbindungen hinzu. Sie können erkennen, ob Vitess oder PlanetScale verwendet wird, und Analyseabfragen mit dem OLAP-Workload ausführen.

```php theme={null}
use Illuminate\Support\Facades\DB;

$totals = DB::connection('mysql')->olap(
    fn ($connection) => $connection->table('orders')
        ->selectRaw('customer_id, sum(total) as total')
        ->groupBy('customer_id')
        ->get()
);
```

Der Workload wird für Lese- und Schreibverbindung gesetzt und am Ende des Callbacks wieder auf OLTP zurückgestellt. Auch bei Exceptions wird er wiederhergestellt. Bei einer normalen MySQL-Verbindung ohne Vitess läuft der Callback ohne Änderung des Workloads.

Primärquellen: [Use OLAP Workloads with Vitess Connections](https://laravel.com/framework/docs/changelog#october-2026-use-olap-workloads-with-vitess-connections), [offizielle Laravel 13 database.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/database.md#running-analytical-queries-on-vitess)

### Bestehende Validierungsregeln über Builder finden

Mit v13.36.0 kamen `Rule`-Builder-Methoden für viele Regeln hinzu, die bisher als String angegeben wurden. Methoden wie `requiredWith()`, `acceptedIf()`, `regex()` und `timezone()` lassen sich über die IDE-Vervollständigung leichter finden, und Sie können die Schreibweise wählen, ohne das bestehende Validierungsverhalten zu ändern.

```php theme={null}
use Illuminate\Validation\Rule;

$rules = [
    'nickname' => [Rule::requiredWith('email'), Rule::regex('/^[a-z]+$/i')],
    'terms' => [Rule::acceptedIf('account_type', 'business')],
    'timezone' => [Rule::timezone()],
];
```

Die Methodennamen sind in camelCase. Sie lassen sich mit String-Regeln mischen, sodass Sie bestehende Regeln nicht auf einmal umschreiben müssen.

Primärquellen: [Discover More Validation Rules Through Builders](https://laravel.com/framework/docs/changelog#october-2026-discover-more-validation-rules-through-builders), [offizielle Laravel 13 validation.md](https://github.com/laravel/docs/blob/f7a20c401a30827991659174d48d958f92517a9e/validation.md#rule-builders). Verwandte Seite: [Validierung](https://kawax.biz/de/validation.md)

## Laravel Cloud

Der offizielle Monatsblog stellt die folgenden drei Punkte vor.

| Funktion | Neuerung |
| - | - |
| Resend-Integration | Wenn Sie ein Resend-Konto mit Ihrer Organisation verbinden, übernimmt Cloud die Versanddomains und zeigt die nötigen DNS-Einträge und den Verifizierungsstatus an. Wenn Sie die Mail-Ressource mit einer Umgebung verbinden, stellt Cloud einen API-Schlüssel aus und setzt `RESEND_API_KEY`, `MAIL_MAILER`, `MAIL_FROM_ADDRESS` und `MAIL_FROM_NAME`. |
| Cloud scheduler | Anwendungen in allen von Cloud unterstützten Sprachen können geplante Befehle ausführen, ohne cron zu installieren oder einen Scheduler-Prozess dauerhaft laufen zu lassen. Sie nutzen Voreinstellungen oder eigene cron-Ausdrücke und sehen Ausgabe, Exit-Code und Dauer jeder Ausführung in den Logs. |
| Domain-Health-Checks | Cloud prüft stündlich, ob das DNS verbundener Domains auf Cloud zeigt und ob SSL-Zertifikate erneuert werden. Probleme erscheinen auf dem Umgebungs-Canvas und werden auch per E-Mail und Slack gemeldet. |

Primärquellen: [Laravel October Product Updates — Laravel Cloud](https://laravel.com/blog/laravel-october-product-updates#laravel-cloud), [Laravel Cloud changelog](https://laravel.com/cloud/docs/changelog). Verwandte Seite: [Laravel Cloud vorgestellt](https://kawax.biz/de/blog/laravel-cloud.md)

## Laravel Forge

* **Hinweise zu PHP-Sicherheitsupdates**: Forge zeigt pro Server, welche Versionen von den PHP-Sicherheitsreleases im Oktober betroffen sind und ob korrigierte Versionen verfügbar sind. Mit **Recheck versions** prüfen Sie die tatsächlich installierte Version erneut. Die Anzeige erneut zu prüfen und PHP zu aktualisieren sind getrennte Vorgänge.
* **Umgang mit fehlgeschlagener Provisionierung**: Server, die nicht fertig provisioniert werden können, werden als fehlgeschlagen angezeigt, mit Benachrichtigung, Hinweisen zum nächsten Schritt und einer Löschaktion. Auch die Installation von PHP und Nginx wird wiederholt, bevor der Fehler feststeht.

Der Monatsblog erwähnt außerdem die Veröffentlichung eines Post-mortems zur PHP- und Node.js-Sicherheitsreaktion im Oktober. Zu den Maßnahmen und Update-Entscheidungen lesen Sie die offiziellen Hinweise.

Primärquellen: [Laravel October Product Updates — Laravel Forge](https://laravel.com/blog/laravel-october-product-updates#laravel-forge), [Laravel Forge changelog](https://laravel.com/forge/docs/changelog)

## Verwandte Artikel

> [card] [Updates September 2026](https://kawax.biz/de/blog/changelog/202609.md)
>
> Ein Rückblick auf KI-Provider zur Laufzeit, Sucherweiterungen, Mercure und isolierte Preview-Umgebungen in Cloud.

> [card] [Datenbank-Leitfaden](https://kawax.biz/de/database.md)
>
> Lese-/Schreibtrennung und die Grundlagen von Datenbankverbindungen.


## Related topics

- [Laravel-Updates September 2026](https://kawax.biz/de/blog/changelog/202609.md)
- [Laravel-Updates März 2026](https://kawax.biz/de/blog/changelog/202603.md)
- [Laravel-Updates Juli 2026](https://kawax.biz/de/blog/changelog/202607.md)
- [Laravel-Updates April 2026](https://kawax.biz/de/blog/changelog/202604.md)
- [Laravel-Updates Mai 2026](https://kawax.biz/de/blog/changelog/202605.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.