小编yiv*_*ivi的帖子

使用 2 个实现 UserInterface 的实体进行身份验证

是否可以有 2 个实体来实现UserInterface

如何在我的警卫中使用它来检查两个类并使用相同的防火墙?

这个想法是公司可以拥有自己的CVTheque或共享的(与CVTheque具有 OneToMany 关系Company)。

我想拥有CandidateUser实体。

  • CVTheque -> OneToMany -> 候选人
  • 用户 -> 多对一 -> 公司。

Candidate并且User将用在该应用被认证同一登录表单。所以我不知道这是否可能以及如何在我的警卫身份验证器上实现这一点。

他们将被重定向到他们自己的仪表板,具体取决于连接的用户(CandidateUser)的实例。

php symfony symfony-security symfony5

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

覆盖 Symfony 中的默认邮件 URL

我试图让用户可以在 Symfony 中向我发送电子邮件,我可以向自己发送电子邮件,但我无法从其他电子邮件中获取电子邮件,因为 .env 文件中给出的默认电子邮件地址未被覆盖.

  /**
 * @Route("/send_msg", name="send_msg", methods={"GET","POST"})
 */
public function index(Request $request, \Swift_Mailer $mailer)
{

  $name =  $request->query->get('name');
  $mail =  $request->query->get('mail');
  $msg =  $request->query->get('msg');


    $message = (new \Swift_Message('Client'))
        ->setFrom($mail)
        ->setTo('my_gmail@gmail.com')
        ->setBody($msg)

    ;

    $mailer->send($message);
    return new JsonResponse();

}
Run Code Online (Sandbox Code Playgroud)

这是 .env 文件

###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
###< symfony/mailer ###

 # For Gmail as a transport, use: "gmail://username:password@localhost"
 # For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
 # Delivery is disabled by default via "null://localhost"
  MAILER_URL=gmail://my_gmail@gmail.com:my_pass@localhost
 ###< symfony/swiftmailer-bundle ###

    ###> …
Run Code Online (Sandbox Code Playgroud)

php gmail swiftmailer symfony

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

如何在 Symfony Messenger 的中间件上禁用日志“信息”?

如何禁用Symfony Messenger 组件INFO发送的日志类型SendMessageMiddleware

symfony/messenger/Middleware/SendMessageMiddleware.php:

$this->logger->info('Received message {class}', $context);
Run Code Online (Sandbox Code Playgroud)

https://github.com/symfony/messenger/blob/9c036a45bcf837dc38f0db93095a45a21096dd63/Middleware/SendMessageMiddleware.php#L57

php logging send symfony messenger

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

MonoLogger 9 级深度中止标准化

我正在尝试记录我们通过深度嵌套的 guzzle 发送的请求(准确地说,深度可达 10-11 层)。

使用 Monolog 记录请求会输出:

超过 9 层深度,中止正常化

关于深层嵌套的属性。

代码非常简单

// $requestData being the data I am sending via guzzle.
Log::info("Ekart Booking API:", $requestData);
Run Code Online (Sandbox Code Playgroud)

有没有办法增加 Monolog 的标准化深度?

php symfony laravel monolog

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

在发送到数据库之前更新每个学说查询

我们正在运行一个巨大的平台,该平台具有用于多个前端的单个数据库。现在我们将尝试识别我们的慢查询,并更好地了解我们的流量来自哪个页面。

我的想法是在每个 sql 查询中注入页面名称作为注释,以便在查看数据库时能够看到它使用 SHOW FULL PROCESSLIST

在此处输入图片说明

最后它应该是这样的: /*PAGE NAME*/ SHOW FULL PROCESSLIST

如果我在 sequel pro 中这样做,那么评论似乎会被列出:

在此处输入图片说明

如何使用侦听器/订阅者注入自定义评论来更新每个学说查询?

php mysql doctrine doctrine-orm

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

Symfony Serializer with Groups 不工作 - 空输出

我正在尝试使用默认的 Symfony Serializer 将数据序列化为 JSON。
为此,我正在尝试@Groups()按照此处的说明使用:https :
//symfony.com/doc/current/serializer.html

添加@Groups注解后如下图:

class User implements UserInterface
{
    // ...
        /**
     * @ORM\OneToMany(targetEntity=PortfolioItem::class, mappedBy="user", orphanRemoval=true)
     * @ORM\OrderBy({"id" = "DESC"})
     * @Groups({"show_user"})
     */
    private $portfolioItems;
}
Run Code Online (Sandbox Code Playgroud)

在我的控制器上,我有以下内容:

    /**
     * @param Request $request
     * @return JsonResponse
     * @Route("/async/portfolio/brands/get_chart", name="portfolio.brands.chart.data", options={"expose"=true}, methods={"POST", "GET"})
     * @IsGranted("ROLE_USER")
     */
    public function getDataForBrandsChart(Request $request): JsonResponse
    {
        $user = $this->getUser();
        $portfolioItems = $user->getPortfolioItems();
        $output = $this->serializer->serialize($portfolioItems, "json", ["groups" => "show_user"]);

        return new JsonResponse($output, 200);
    }

Run Code Online (Sandbox Code Playgroud)

这总是给出以下输出:
[[]] …

serialization entity-groups symfony

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

学说差异 make:migration et 学说:migrations:diff

我想知道条令 2.2 的doctrine:migrations:diff和命令之间的区别make:migration

几个月前我正在使用doctrine:migrations:diff,但在 Symfony 文档中他们现在似乎更喜欢make:migration

这两个命令有什么区别?

php symfony doctrine-orm

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

如何使用 Symfony Doctrine 持久化枚举(实体字段类型:“enum”)

我有一个枚举(感谢 php 8.1),我想将其记录在数据库中。该字段的类型为Enum。通过Adminer进行SQL查询,没有问题。

UPDATE `users` SET `grade` = 1, WHERE `id` = '51';
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在 Adminer 中,我可以在成绩列中看到“A5”(值为 1 的枚举名称)

但是对于 Doctrine 和 symfony 形式,数据不会被持久化(仅在这个字段上)。我没有错误。

if ($form->isSubmitted() && $form->isValid()){

        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->persist($user);
        $entityManager->flush();
Run Code Online (Sandbox Code Playgroud)

这是 ProfileType 中的“添加”

            ->add('grade', ChoiceType::class, [
            'data' => $user ? $user->getGrade() : GradeEnum::D1,
            'placeholder' => 'Choose an option',
            'required' => false,
            'choices' => [
                GradeEnum::D1->name => GradeEnum::D1,
                GradeEnum::D2->name => GradeEnum::D2,
                GradeEnum::C1->name => GradeEnum::C1,
                GradeEnum::C2->name => GradeEnum::C2,
                GradeEnum::B1->name => GradeEnum::B1,
                GradeEnum::B2->name => GradeEnum::B2,
                GradeEnum::A1->name => GradeEnum::A1, …
Run Code Online (Sandbox Code Playgroud)

php enums doctrine

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

Bootstrap JS 未在带有 Encore 的 Symfony 5 中加载

我在使用 Symfony 5、encore、stimulus 等加载 Bootstrap 的 js 时遇到困难...

jquery、popper、corejs 等都已安装,并且至少 jquery 正在工作......

app.scss 和 app.js 似乎可以使用 sass、postcss 和 babel(包括 Bootstrap 的 CSS)很好地编译。只是 Bootstrap 的 JS 不存在,所以没有下拉菜单等。

资产/app.js

// any CSS you import will output into a single css file (app.css in this case)
import './styles/app.scss';

// start the Stimulus application
import './bootstrap';
Run Code Online (Sandbox Code Playgroud)

资产/引导程序,js

import { startStimulusApp } from '@symfony/stimulus-bridge';

// Registers Stimulus controllers from controllers.json and in the controllers/ directory
 export const app = startStimulusApp(require.context(
    '@symfony/stimulus-bridge/lazy-controller-loader!./controllers',
    true,
    /\.(j|t)sx?$/
));

// …
Run Code Online (Sandbox Code Playgroud)

javascript symfony webpack-encore bootstrap-5

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

将数据从数据库显示到html表中

我正在尝试将数据库中的数据显示为html中的表格.这是我的代码:

php代码:

if($_SERVER['REQUEST_METHOD'] =='POST')
{   
 $type_user=$_POST['type_user'];
 $sql="SELECT staff_id, name, email, role FROM user WHERE role='$type_user'";

 $run= $db->query($sql)
    or die($db -> error);

 $num=mysqli_num_rows($run);
 $row=mysqli_fetch_array($run, MYSQLI_ASSOC);
 //$yana =  $row['staff_id'];
 //echo "dd".$yana;

 echo "<table >
  <tr>
    <td >Staff ID </td>
    <td >Name</td>
    <td >Email</td>
    <td >Role</td>
  </tr>";

  while($row = mysqli_fetch_array($run, MYSQLI_ASSOC))
  {
  echo "<tr>";
  echo "<td>".$row['staff_id']."</td>";
  echo "<td>".$row['name']."</td>";
  echo "<td>".$row['email']."</td>";
  echo "<td>".$row['role']."</td>";
  echo "</tr>";
  echo "</table>";}

 }
 ?>
Run Code Online (Sandbox Code Playgroud)

HTML代码:

<form id="list_of_user"  method="post" action="user_list.php" accept-charset='UTF-8'>

<h2> Table Example</h2>
<p>&nbsp;</p>
<table width="729" border="0" >
  <tr …
Run Code Online (Sandbox Code Playgroud)

html php mysql

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