Chapters
40 Chapters
|
4:19:16
|
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!
31.
Extending with Events
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 is built on Symfony 6 but works great on Symfony 7!
What PHP libraries does this tutorial use?
// composer.json
{
"require": {
"php": ">=8.2.0",
"ext-ctype": "*",
"ext-iconv": "*",
"composer/package-versions-deprecated": "^1.11", // 1.11.99.4
"doctrine/doctrine-bundle": "^2.1", // 2.5.5
"doctrine/doctrine-migrations-bundle": "^3.0", // 3.2.1
"doctrine/orm": "^2.7", // 2.10.4
"easycorp/easyadmin-bundle": "^4.0", // v4.0.2
"handcraftedinthealps/goodby-csv": "^1.4", // 1.4.0
"knplabs/knp-markdown-bundle": "dev-symfony6", // dev-symfony6
"knplabs/knp-time-bundle": "^1.11", // 1.17.0
"sensio/framework-extra-bundle": "^6.0", // v6.2.5
"stof/doctrine-extensions-bundle": "^1.4", // v1.7.0
"symfony/asset": "6.0.*", // v6.0.1
"symfony/console": "6.0.*", // v6.0.2
"symfony/dotenv": "6.0.*", // v6.0.2
"symfony/flex": "^2.0.0", // v2.4.5
"symfony/framework-bundle": "6.0.*", // v6.0.2
"symfony/mime": "6.0.*", // v6.0.2
"symfony/monolog-bundle": "^3.0", // v3.7.1
"symfony/runtime": "6.0.*", // v6.0.0
"symfony/security-bundle": "6.0.*", // v6.0.2
"symfony/stopwatch": "6.0.*", // v6.0.0
"symfony/twig-bundle": "6.0.*", // v6.0.1
"symfony/ux-chartjs": "^2.0", // v2.0.1
"symfony/webpack-encore-bundle": "^1.7", // v1.13.2
"symfony/yaml": "6.0.*", // v6.0.2
"twig/extra-bundle": "^2.12|^3.0", // v3.3.7
"twig/twig": "^2.12|^3.0" // v3.3.7
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.3", // 3.4.1
"symfony/debug-bundle": "6.0.*", // v6.0.2
"symfony/maker-bundle": "^1.15", // v1.36.4
"symfony/var-dumper": "6.0.*", // v6.0.2
"symfony/web-profiler-bundle": "6.0.*", // v6.0.2
"zenstruck/foundry": "^1.1" // v1.16.0
}
}
4 Comments
Hey there SymfonyCasts,
I'm storing an entity that "relates" (so to speak) to another entity. BUT the details of the related entity are provided by an external API. The entity I handle in EasyAdmin simply stores the id of that external entity. In my Repository-Class I simply extend the methods and inject the API-client to swap the id with an instance of that external entity. That works fine for me.
My issue with EasyAdmin is that I haven't found a place where to do something similar as in the Repository-Class. As far as I understand I cant make use of my Repository. As createIndexQueryBuilder() has no results yet I cannot call the API there. I hoped to find some Event like "PreShow" or "PreDetail" where I could do API-stuff but could not figure something out.
I have to main use cases for this:
1) I'd like to display the name of the external entities instead of the id number in my backend.
2) When creating/editing an entity with EasyAdmin I would like to display readable options provided by the API to then store the id.
Hope you can provide some help. Thanks!
Where are you hooking in the eventSubscriber? Does it work as a standalone, or do you have to call it somewhere?
I answered my own question, but I've got another one. The entity I'm trying to update doesn't update according to the dump of the entity after I've set the properties I want to update. Do I have to persist the entity?
Hey @Courtney-T ,
All new entities you created in the current request should be persisted first, i.e. you should call
persist($yourNewEntityHere)on them. Otherwise, you won't be saved onflush(). Try to persist it.Cheers!
"Houston: no signs of life"
Start the conversation!