Chapters
48 Chapters
|
5:13:28
|
Login to bookmark this video
-
Course Code
Subscribe to download the code!
Subscribe to download the code!
-
This Video
Subscribe to download the video!
Subscribe to download the video!
-
Subtitles
Subscribe to download the subtitles!
Subscribe to download the subtitles!
-
Course Script
Subscribe to download the script!
Subscribe to download the script!
39.
Input DTO Update Problems
Scroll down to the script below, click on any sentence (including terminal blocks) to jump to that spot in the video!
Subscribe to jump to this part in the video!
Keep on Learning!
If you liked what you've learned so far, dive in! Subscribe to get access to this tutorial plus video, code and script downloads.
This tutorial also works great with API Platform 2.6.
What PHP libraries does this tutorial use?
// composer.json
{
"require": {
"php": ">=8.2",
"ext-ctype": "*",
"ext-iconv": "*",
"api-platform/core": "^2.1", // v2.5.10
"composer/package-versions-deprecated": "^1.11", // 1.11.99
"doctrine/annotations": "^1.0", // 1.12.1
"doctrine/doctrine-bundle": "^2.0", // 2.1.2
"doctrine/doctrine-migrations-bundle": "^3.0", // 3.0.2
"doctrine/orm": "^2.4.5", // 2.8.2
"nelmio/cors-bundle": "^2.1", // 2.1.0
"nesbot/carbon": "^2.17", // 2.39.1
"phpdocumentor/reflection-docblock": "^3.0 || ^4.0 || ^5.0", // 5.2.2
"ramsey/uuid-doctrine": "^1.6", // 1.6.0
"symfony/asset": "5.1.*", // v5.1.5
"symfony/console": "5.1.*", // v5.1.5
"symfony/debug-bundle": "5.1.*", // v5.1.5
"symfony/dotenv": "5.1.*", // v5.1.5
"symfony/expression-language": "5.1.*", // v5.1.5
"symfony/flex": "^1.1", // v1.21.6
"symfony/framework-bundle": "5.1.*", // v5.1.5
"symfony/http-client": "5.1.*", // v5.1.5
"symfony/monolog-bundle": "^3.4", // v3.5.0
"symfony/security-bundle": "5.1.*", // v5.1.5
"symfony/twig-bundle": "5.1.*", // v5.1.5
"symfony/validator": "5.1.*", // v5.1.5
"symfony/webpack-encore-bundle": "^1.6", // v1.8.0
"symfony/yaml": "5.1.*" // v5.1.5
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.3", // 3.3.2
"symfony/browser-kit": "5.1.*", // v5.1.5
"symfony/css-selector": "5.1.*", // v5.1.5
"symfony/maker-bundle": "^1.11", // v1.23.0
"symfony/phpunit-bridge": "5.1.*", // v5.1.5
"symfony/stopwatch": "5.1.*", // v5.1.5
"symfony/twig-bundle": "5.1.*", // v5.1.5
"symfony/web-profiler-bundle": "5.1.*", // v5.1.5
"zenstruck/foundry": "^1.1" // v1.8.0
}
}
4 Comments
Hello ! I'm using <b>API Platform <u>2.6</u></b>, so I can use the <b>DataTransformerInitializerInterface</b> interface.
So I tried something like this :
Is this the correct way to initialize data ?
I also had to nullable each property of the <b>CheeseListingInput</b> class, like this:
<u><b>The files :</b></u>
<b>CheeseListingInput</b> : https://gist.github.com/bastien70/859da9286ceb6705f1edd28337e4bc1f
<b>CheeseListingInputDataTransformer</b> : https://gist.github.com/bastien70/aabe1d26569cae96a5c254eb75e9bb5c
Everything seems to be working at this point. I am therefore awaiting your approval to know if this was the way to proceed.
Thank you ! :)
<b>EDIT</b> : Aaaargh ... continuing the course, I saw that you had developed a 'createDto ()' method in the denormalizer that we create in the event that we do not have the right version of API Platform.
In the end I was not that far from the right answer, apart from the fact that I had not put any safety instructions there to avoid potential errors. But I finally imagine that I can use this function by simply calling it inside my '<b>initialize()</b>' method!
Hey again Kiuega!
Nice work! So yes, your initialize() method looks right to me, as I think you figured out by looking at the createDto(). And I'm happy you were able to use the new 2.6 feature to make this easier.
If you still have any doubts about any of it, let me know :).
Cheers!
Hi!
I was wondering if this whole block:
could be shortened into one line like this:
$cheeseListing = $context[AbstractItemNormalizer::OBJECT_TO_POPULATE] ?? new CheeseListing($input->title);Hey Jakub,
Yes, it should do the same and will read a bit nicer
Cheers!
"Houston: no signs of life"
Start the conversation!