标签: symfony6

清空 $request->request 和 $request->带有 multipart/form-data 的文件

我正在尝试使用 AJAX 将带有文件的表单上传到我的服务器,但 Symfony 没有像应有的那样解析请求正文。这是我的 PHP:

#[Route('/api/upload/file', name: "api_upload_file", methods: ['POST'])]
public function create(Request $request): JsonResponse
{
    dump($request->files->all());
    dump($request->request->all());
    dump($request->getContent());
...
Run Code Online (Sandbox Code Playgroud)

和转储输出(文件部分被删除,因为它占用大量空间):

[]
Run Code Online (Sandbox Code Playgroud)
[]
Run Code Online (Sandbox Code Playgroud)
"""
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="subcategory"

1
------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="main_image"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="more_images"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="original_version"


------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="version"


------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="original_title"


------WebKitFormBoundaryh4t0I09h9iTRNGme
Content-Disposition: form-data; name="title"
"""
Run Code Online (Sandbox Code Playgroud)

请求显然通过了,所以我不明白为什么内容没有被解析

以防万一,这里是 javascript 部分:(这看起来像 JQuery,但不是)

form.submit(e => {
        e.preventDefault();
        let formData = createItemForm.formData();
        $.ajax('/api/upload/file', {
            headers: {
                'Content-Type': 'multipart/form-data' …
Run Code Online (Sandbox Code Playgroud)

php ajax symfony php-8 symfony6

2
推荐指数
1
解决办法
4687
查看次数

Symfony UX Swup,未知的“stimulus_controller”函数

我正在使用 symfony 6.3 并且已经安装了ymfony/ux-swup

//bundles.php
<?php

return [
   // ..............

    Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
    Symfony\UX\Swup\SwupBundle::class => ['all' => true],
    Symfony\UX\Dropzone\DropzoneBundle::class => ['all' => true],
];
Run Code Online (Sandbox Code Playgroud)

我已关注文档https://symfony.com/bundles/ux-swup/current/index.html#usage

树枝页面

    <div {{ stimulus_controller('symfony/ux-swup/swup') }} id="swup" data-turbo="false">

    <section class="content">
        <div class="container-fluid">

         my content
       </div>
    </section>
   </div>
Run Code Online (Sandbox Code Playgroud)

但我发现这个树枝函数错误:

未知的“stimulus_controller”功能。

在此输入图像描述

symfony swup symfony6 symfonyux

2
推荐指数
1
解决办法
545
查看次数

如何修复 Symfony 6 错误“输入值包含非标量值”

我正在使用 Symfony 6 表单。我尝试使用该方法提交表单submit()。从文档Symfony Form Direct Submit中,错误原因被阐明为“使用 Submit() 方法提交的字段列表必须与表单类定义的字段相同。否则,您将看到表单验证错误: ”。我该如何调试并解决这种错误?

symfony-forms symfony symfony6

2
推荐指数
1
解决办法
3797
查看次数

Symfony 6 - JWTRefreshTokenBundle - “Gesdinet\JWTRefreshTokenBundle\Entity\RefreshToken”不是有效的实体或映射的超类

我正在 Symfony 6 和 PHP 8.1 基础上安装 JWTRefreshTokenBundle

我按照文档操作,收到以下错误:“Gesdinet\JWTRefreshTokenBundleEntityRefreshToken”的“AppEntityRefreshToken”子类不是有效的实体或映射的超类。

我继续搜索并尝试了以下过程: https: //github.com/markitosgv/JWTRefreshTokenBundle/issues/332

但结果是一样的。

奇怪的是,在文档中,我们必须使用新的 RefreshToken 实体更新数据库,即使强制更新也绝对没有任何反应

您将在下面找到不同的文件。

如果有人有想法,我很感兴趣!提前致谢

-- 应用\Entity\RefreshToken.php

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gesdinet\JWTRefreshTokenBundle\Entity\RefreshToken as BaseRefreshToken;

/**
 * @ORM\Entity
 * @ORM\Table("refresh_tokens")
 */
class RefreshToken extends BaseRefreshToken
{
}
Run Code Online (Sandbox Code Playgroud)

-- 安全.yaml

providers:
    # used to reload user from session & other features (e.g. switch_user)
    app_user_provider:
        entity:
            class: App\Entity\User
            property: email
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false        
    api:
        pattern: ^/api/
        stateless: true
        entry_point: jwt
        json_login:
            check_path: /api/authentication_token …
Run Code Online (Sandbox Code Playgroud)

symfony lexikjwtauthbundle symfony6

1
推荐指数
1
解决办法
2468
查看次数

symfony Mailer:不发送邮件并且没有错误

我使用 Symfony6.2 Mailer 发送这样的电子邮件 文档

https://symfony.com/doc/current/mailer.html 但邮件未发送(我在收件箱中看不到任何新邮件)并且我没有任何错误?!我的邮件程序.yaml

\`\`\`framework:
    mailer:
        transports:
            main: '%env(MAILER_DSN)%'
Run Code Online (Sandbox Code Playgroud)

我尝试使用调试php bin/console mailer:test,当我使用此命令但当我使用路由功能时,邮件发送成功

    {
        $email = (new Email())
            ->from('hello@example.com')
            ->to('you@example.com')
            //->cc('cc@example.com')
            //->bcc('bcc@example.com')
            //->replyTo('fabien@example.com')
            //->priority(Email::PRIORITY_HIGH)
            ->subject('Time for Symfony Mailer!')
            ->text('Sending emails is fun again!')
            ->html('<p>See Twig integration for better HTML integration!</p>');

        $mailer->send($email);

        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有收到任何邮件,我希望使用路由在收件箱中找到新邮件

php symfony symfony-mailer symfony6

1
推荐指数
1
解决办法
700
查看次数

Symfony 6 ApiKeyAuthenticator 与 SelfValidatingPassport 取代了守卫?

我使用 api-platform 将 symfony 5.1 api 迁移到 symfony 6。
我的应用程序有自己的用户和密码逻辑,与普通用户数据库不同,因此我必须创建 UserRepository 和 UserProvider。
我创建了一个具有登录功能的控制器,用于检查凭据并返回令牌。
在 上symfony 5,我实现了 AbstractGuardAuthenticator 来验证令牌并加载用户。
symfony 6使用实现 AbstractAuthenticator 的新系统(个人意见:不如守卫清晰)。

security:
    enable_authenticator_manager: true
# [...]
    providers:
        # used to reload user from session & other features (e.g. switch_user)
        api_user_provider:
            id: App\Security\UserProvider

    firewalls:
# [...]
        api:
            pattern: ^/api/
            stateless: true
            provider: api_user_provider
            custom_authenticators:
                - App\Security\TokenAuthenticator
Run Code Online (Sandbox Code Playgroud)
<?php

namespace App\Security;

// usings

class TokenAuthenticator extends AbstractAuthenticator
{
// [...]
    public function supports(Request $request): ?bool
    {
        if …
Run Code Online (Sandbox Code Playgroud)

php symfony api-platform.com symfony6

0
推荐指数
1
解决办法
1602
查看次数