Symfony既指用于构建Web应用程序的PHP框架,也指构建框架的一组组件。此标记指的是当前支持的主要版本2.x,3.x和4.x.或者,您可以使用相应的标记指定确切的版本。此标记不应用于有关Symfony 1.x的问题。请改用Symfony1标签。
我有一个控制器,我想在其中设置一个日志,特定用户可以在其中查看任务的历史记录(看起来像( {user} 将任务设置为 {mission status},无论他是否接受...
我在一个项目中使用 Doctrine,我必须找到一个值。如果这样的值不存在或者有多个值,则必须启动另一个进程。 我想我应该使用
我可以让 symfony 序列化程序要求所有组都在场吗?不只是群组列表中的一个?
例如我有一个房产 #[组(['显示', '管理])] 公共混合$name; 如果所有组都不在上下文中,我希望序列化程序忽略该属性。例如这里默认情况下它会...
在链配置的命名空间 App\Entity\Users 中找不到类“App\Repository\Users\UserRepository”
我看到了一些关于此错误消息的问题,但答案对我没有帮助,所以我们再次: 我有 2 个配置的实体管理器,当我打电话时 $repository = $this->getManager('
我是 Symfony 的新手。 我成功构建了一个表单,但表单字段之间没有空格。 我的表单已显示,但我想在字段之间添加标签,例如以获得最佳的表单显示......
symphony :在 twig 文件中的字段之间添加 <br/>
我是 Symfony 的新手。 我成功构建了一个表单,但表单字段之间没有空格。 我的表单已显示,但我想在字段之间添加标签,例如以获得最佳的表单显示......
Symfony2 / 验证 - NotBlank 验证不起作用
我对 Assert/NotBlank() 有疑问。 它就是行不通。 每次当我发送空白表单时,我都会看到 500, SQLSTATE[23000]: Integrityconstraint Violation: 1048 Column '***' can not be null...
Symfony 2:表单实体字段在每个单选输入上添加“data-*”属性
我有一个表单,其中的字段类型为“实体”,显示单选字段: - >添加( '会员资格', '实体', 大批( 'class' => 'Comiti\UserBundle\
爬虫在windows下返回数据是CR LF,但在linux下不行
我正在尝试使用 symfony 爬虫链接从网站上的标签获取数据。 foreach ($tables as $table) { $response = $this->client->get($url, [ 'http_errors' =>
Symfony 爬虫在 Windows 中返回带有 CR LF 的数据,但在 Linux 中则不然
我正在尝试使用 symfony 爬虫链接从网站上的标签获取数据。 foreach ($tables as $table) { $response = $this->client->get($url, [ 'http_errors' =>
执行查询时发生异常:SQLSTATE[42S01]: 基表或视图已存在: 1050 表 'user' 已存在
我已经在 symfony 中生成了此迁移,以将createdAt和UpdatedAt字段添加到表中 我已经在 symfony 中生成了此迁移,以将createdAt和UpdatedAt字段添加到表中 <?php declare(strict_types=1); namespace DoctrineMigrations; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; /** * Auto-generated Migration: Please modify to your needs! */ final class Version20241105173344 extends AbstractMigration { public function getDescription(): string { return ''; } public function up(Schema $schema): void { // this up() migration is auto-generated, please modify it to your needs $this->addSql('ALTER TABLE user ADD created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', ADD updated_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\''); } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs $this->addSql('ALTER TABLE `user` DROP created_at, DROP updated_at'); } } 但是当我尝试执行迁移时 An exception occurred while executing a query: SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'user' already exists 迁移并没有尝试再次创建表,我不知道迁移出了什么问题 Doctrine 迁移系统将所有已执行的迁移保存在单独的表中,以“记住”哪些迁移已经执行。一旦执行迁移过程,它会在代码中找到第一个未执行的迁移,并从这一个开始执行所有未执行的迁移。 现在,回到你的错误。它清楚地显示 Table 'user' already exists,这意味着它正在尝试创建表格。如果由于某种原因您的数据库中已存在此表,但负责此更改的迁移未标记为已执行,并且当您开始迁移过程时,它会尝试执行“创建表用户”查询,则可能会发生这种情况,这很可能位于代码中旧迁移中的某个位置。它与您在问题中给我们的迁移无关。
更改 symfony 上的嵌入字段名称以避免无法识别的字段:App\Domain\Entity\User::$email 问题
我有这个实体 我有这个实体 <?php namespace App\Domain\Entity; use App\Domain\ValueObject\Email; use App\Domain\ValueObject\Name; use App\Domain\ValueObject\Password; use App\Domain\ValueObject\Surname; use Ramsey\Uuid\UuidInterface; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; use Symfony\Component\Security\Core\User\UserInterface; class User implements UserInterface, PasswordAuthenticatedUserInterface { public function __construct( private UuidInterface $id, private Name $name, private Surname $surname, private Email $email, private Password $password, private array $roles = [] ) {} public function getId(): UuidInterface { return $this->id; } public function setId(UuidInterface $id): void { $this->$id = $id; } public function getName(): Name { return $this->name; } public function setName(Name $name): void { $this->name = $name; } public function getSurname(): Surname { return $this->surname; } public function setSurname(Surname $surname): void { $this->surname = $surname; } public function getEmail(): string { return $this->email->value(); } public function setEmail(String $email): void { $this->$email = new Email($email); } public function getVOEmail(): Email { return $this->email; } public function setVOEmail(Email $email): void { $this->$email = $email; } public function getVOPassword(): Password { return $this->password; } public function setVOPassword(Password $password): void { $this->password = $password; } public function getPassword(): ?string { return $this->password->value(); } public function setPassword(string $password): static { $this->password = $password; return $this; } /** * Get the roles granted to the user. */ public function getRoles(): array { // Garantizar que cada usuario tenga al menos el rol ROLE_USER if (empty($this->roles)) { $this->roles[] = 'ROLE_USER'; } return array_unique($this->roles); } /** * Set the roles for the user. */ public function setRoles(array $roles): static { $this->roles = $roles; return $this; } /** * Get the user identifier (e.g., email). */ public function getUserIdentifier(): string { return $this->email->value(); // O cualquier otro identificador único } /** * Erase any sensitive information. */ public function eraseCredentials(): void { // Si hay información sensible que deseas eliminar, hazlo aquí. // Por ejemplo, si usaste una contraseña sin encriptar durante la autenticación: // $this->plainPassword = null; // O cualquier otro campo temporal. } } 这样映射 <?xml version="1.0" encoding="UTF-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://raw.githubusercontent.com/doctrine/doctrine2/main/doctrine-mapping.xsd"> <!-- Definición de la entidad --> <entity name="App\Domain\Entity\User" table="`user`" repository-class="App\Infrastructure\Service\UserRepository"> <!-- Identificador (ID) --> <id name="id" type="uuid" column="id"> <generator strategy="NONE"/> <!-- Usamos un UUID generado manualmente --> </id> <!-- Definición de los campos --> <embedded name="email" class="App\Domain\ValueObject\Email" use-column-prefix="false"/> <embedded name="name" class="App\Domain\ValueObject\Name" use-column-prefix="false"/> <embedded name="surname" class="App\Domain\ValueObject\Surname" use-column-prefix="false"/> <embedded name="password" class="App\Domain\ValueObject\Password" use-column-prefix="false"/> <!-- Definición de la columna JSON para los roles --> <field name="roles" type="json" column="roles"/> </entity> </doctrine-mapping> 和可嵌入映射 <?xml version="1.0" encoding="UTF-8"?> <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping https://raw.githubusercontent.com/doctrine/doctrine2/main/doctrine-mapping.xsd"> <!-- Definición del objeto embebido --> <embeddable name="App\Domain\ValueObject\Email"> <!-- Campo de la clase Email --> <field name="value" column="email" type="string" length="255" nullable="false"/> </embeddable> </doctrine-mapping> 电子邮件是一个值对象(与属性上的其余部分一样),我使用了属性的嵌入式类,我的工作是将用户存储在数据库中,但不是使用LexikJWTAuthenticationBundle登录,问题是当我尝试登录用户我收到此错误Unrecognized field: App\Domain\Entity\User::$email 调试发现这段代码 $this->class->fieldMappings[$field] 不会将字段名称重新调整为电子邮件、姓名、姓氏...它会在类中返回 email.value 、name.value...,因为电子邮件值包含在名为 $value 的变量中 <?php namespace App\Domain\ValueObject; class Email { public function __construct(private string $value) {} public function value(): string { return $this->value; } } 我不知道如何在调用 name 时获取 name.value 而不是 $this->class->fieldMappings[$field],名称已在 xml 配置文件中设置 将用户名和电子邮件等数据保存为 VO 是非常非标准的方式。如果您放弃这个想法并重构您的实体以将此类数据保存为字符串(您始终可以创建专门的 getter 来设置和获取这些值作为 VO),您将从长远来看受益。 如果 LexikJWTAuthenticationBundle 仅限于使用 ORM 映射来获取这些属性,并且您无法覆盖此行为,那么不幸的是,我没有看到解决方案。作为最后的手段,您可以覆盖捆绑包本身中的这部分代码(如果可能的话,通过使用 symfony DI 覆盖服务),但我也不推荐这样做,因为它可能会导致更糟糕的情况和不可预测的情况未来(不提升级包后的问题)。 最后一件事,如果有办法以某种方式为 LexikJWTAuthenticationBundle 提供属性路径而不是映射字段,您可能可以创建一个单独的 getter (例如 getEmailValue、getNameValue),并使捆绑包使用 emailValue 和 nameValue 属性。但是,同样,这个捆绑包很可能无法开箱即用。
我在共享 OVH 上制作了一个托管 API 的 API,后端使用 Symfony 7。 前端基于 Angular 18.2 一切工作正常,除了第一个 API 调用总是比其他调用慢......
我正在尝试为我的实体设置一个新字段,它是一个布尔数组。我这样定义它: /** * @var bool[] $groupe_jours 组的选定日期 * @ORM\Column(类型=“数组”) */
有没有办法为数组字段设置默认值? 数据: 类型:数组 可空:true 选项: 默认值:{key1: value1, key2: value2} 评论:'一些数组数据' 它...
如何在 Symfony 的自定义 Twig 函数中使用环境变量(来自 `.env` 文件)?
如何在 Symfony 4 中的自定义 Twig 函数 (\Twig_SimpleFunction) 中使用 .env 文件中的环境变量?
我试图在我的电子邮件模板中添加新行,但由于某种原因它不起作用。 我的控制器: $content = $postData['name']. ' ' .$postData['地址']; $message = \Swift_Message::
我试图显示数组内的所有元素并用换行符分隔它们,但我无法让它工作。 这是我尝试过的: {{ 用户角色 |加入('') }} {{ 用户角色 |加入...
我试图显示数组内的所有元素并用换行符分隔它们,但我无法让它工作。 这是我尝试过的: {{ 用户角色 |加入('') }} {{ 用户角色 |加入...
我正在尝试制作一个自定义装置,它将从 csv 文件中获取数据,以特定方式解析它,创建对象,插入数据并将其刷新到数据库。 我的问题是我的文件...