我正在尝试使用 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) 我正在使用 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 6 表单。我尝试使用该方法提交表单submit()。从文档Symfony Form Direct Submit中,错误原因被阐明为“使用 Submit() 方法提交的字段列表必须与表单类定义的字段相同。否则,您将看到表单验证错误: ”。我该如何调试并解决这种错误?
我正在 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) 我使用 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)
我没有收到任何邮件,我希望使用路由在收件箱中找到新邮件
我使用 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)