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!
29.
Filter Class Arguments
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
This is another issue I found when applying this to graphql.
It would seem that the apply method in DailyStatDateFilter is not called at all when using graphql.
I tried to dd($context) there and it simply ignored it.
Not sure if any other interface should be applied in the case of graphql, though the one used seem to be generic.
In the specific use case of this course, the apply method is used for getting the Request query parameters, validating them and throwing or not an error depending on the argument set on the Entity ("throwOnInvalid").
The former is not an issue if the apply method is not called with graphql, as the same query parameters are available on the DataProvider on context["filters"], as I already pointed out on another comment.
But passing the "throwOnInvalid" argument is an issue. It does not seem to be available on DailyStatDateFilter, as apparently apply() is ignored and I could not find a way to make it available on the DataProvider. It certainly is NOT included in the $context, at least not with the current interfaces.
So any help trying to find a solution for issues above on graphql are welcome.
Hey Bernard A.!
Hmm. Unfortunately, my knowledge of the GraphQL implementation is too limited to help here :/. I simply don't know if this is a bug or the expected behavior. The GraphQL system *does* support filters in general - https://github.com/api-plat... - so I'm not sure what's going on here :/.
Sorry I can't help more on this one!
Thanks anyways.
I will report this to API-Platform.
Unfortunately, there I will fall into the downside of this otherwise great tool.
The responsiveness of the team to the issues posted on Github is simply glacial. I had issues linger there for 2 years or longer.
So, I will post it, but with very low expectations.
Yes, they're quite busy - it's tricky. I'm guilty myself of having slow replies on my open source projects! I'm always trying to improve that, but it's tough. Good luck!
"Houston: no signs of life"
Start the conversation!