Chapters
28 Chapters
|
2:51:42
|
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!
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.
What PHP libraries does this tutorial use?
// composer.json
{
"require": {
"php": ">=8.2",
"ext-ctype": "*",
"ext-iconv": "*",
"api-platform/core": "^3.0", // v3.0.8
"doctrine/annotations": "^1.0", // 1.14.2
"doctrine/doctrine-bundle": "^2.8", // 2.8.0
"doctrine/doctrine-migrations-bundle": "^3.2", // 3.2.2
"doctrine/orm": "^2.14", // 2.14.0
"nelmio/cors-bundle": "^2.2", // 2.2.0
"nesbot/carbon": "^2.64", // 2.64.1
"phpdocumentor/reflection-docblock": "^5.3", // 5.3.0
"phpstan/phpdoc-parser": "^1.15", // 1.15.3
"symfony/asset": "6.2.*", // v6.2.0
"symfony/console": "6.2.*", // v6.2.3
"symfony/dotenv": "6.2.*", // v6.2.0
"symfony/expression-language": "6.2.*", // v6.2.2
"symfony/flex": "^2", // v2.2.4
"symfony/framework-bundle": "6.2.*", // v6.2.3
"symfony/property-access": "6.2.*", // v6.2.3
"symfony/property-info": "6.2.*", // v6.2.3
"symfony/runtime": "6.2.*", // v6.2.0
"symfony/security-bundle": "6.2.*", // v6.2.3
"symfony/serializer": "6.2.*", // v6.2.3
"symfony/twig-bundle": "6.2.*", // v6.2.3
"symfony/ux-react": "^2.6", // v2.6.1
"symfony/validator": "6.2.*", // v6.2.3
"symfony/webpack-encore-bundle": "^1.16", // v1.16.0
"symfony/yaml": "6.2.*" // v6.2.2
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.4", // 3.4.2
"symfony/debug-bundle": "6.2.*", // v6.2.1
"symfony/maker-bundle": "^1.48", // v1.48.0
"symfony/monolog-bundle": "^3.0", // v3.8.0
"symfony/stopwatch": "6.2.*", // v6.2.0
"symfony/web-profiler-bundle": "6.2.*", // v6.2.4
"zenstruck/foundry": "^1.26" // v1.26.0
}
}
4 Comments
The code in the SerializedName part doesn't seem to be the right one since this attribute is nowhere to be seen.
I suppose it should be like:
Great course nonetheless!
Hey,
Whoops. Sorry for that, somehow several code blocks on that page were duplicated. I already fixed them. Thanks for the report!
Cheers!
Hi guys, the "green" answer for the challenge after this lesson seems to be incorrect.
The b) is green. But as correctly said in the answer: "By removing the
treasure:writegroup, that would make thenamefield totally unwritable: you wouldn't be able to send the field when creating the object." And isn't, what we want to achieve. The correct one should be the a). But then with the following addition: The defaultnullvalue needs to be removed.Hey Automatix,
Yeah, I see what you mean :) This is a tricky challenge actually, and probably it's hard to understand the initial idea behind of it, though the explanation that popups after you reply successfully should explain things better I think.
Yes, that's exactly what we want to achieve :) But there's a little nuance in the question, it contains "NOT", see:
So, if we rephrase the question and simplify it, it will be:
And as you answered, "By removing the treasure:write group, that would make the name field totally unwritable: you wouldn't be able to send the field when creating the object".
I think we confused you with that "NOT" in the question, sorry :)
So, the challenge is correct, but not easy for sure, because it took me a while to understand it well myself 😅 And I think that's what makes this challenge well written, because we all want tough challenges, right?! :p
But thanks for the heads-up!
Cheers!
"Houston: no signs of life"
Start the conversation!