Repository navigation
[6.x] Fix saving entries when entryId is posted as a string - #20643
Merged
Merged
Conversation
StoreEntryController passed entryId from form data straight to Entries::getEntryById(), which takes an int.
[ci skip] Amp-Thread-ID: https://ampcode.com/threads/T-01a1d0de-3b65-7450-be5d-d22305f92f01 Co-authored-by: Amp <amp@ampcode.com>
📚 Storybook previews@craftcms/ui — open Storybook No changed components detected in this Storybook. resources/js — open Storybook No changed components detected in this Storybook. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
POST {cpTrigger}/actions/entries/save-entryreturned a 500 whenentryIdarrived as ordinary form data, because the string went straight toEntries::getEntryById(int $entryId):StoreEntryControllernow reads the IDs with$request->integer(), the same way sibling controllers read theirs:Evidence
StoreEntryControllerTest› "can update an existing entry" now postsentryIdas a string, the way a browser form does. The test client had been sending it as an int, so the bug went unnoticed.post(save-entry, ['entryId' => '123', ...])→ 500,TypeError … must be of type int, string givenAfter: → redirect, and the entry's title is updated