是否可以有 2 个实体来实现UserInterface?
如何在我的警卫中使用它来检查两个类并使用相同的防火墙?
这个想法是公司可以拥有自己的CVTheque或共享的(与CVTheque具有 OneToMany 关系Company)。
我想拥有Candidate和User实体。
Candidate并且User将用在该应用被认证同一登录表单。所以我不知道这是否可能以及如何在我的警卫身份验证器上实现这一点。
他们将被重定向到他们自己的仪表板,具体取决于连接的用户(Candidate或User)的实例。
我试图让用户可以在 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) 如何禁用Symfony Messenger 组件INFO发送的日志类型SendMessageMiddleware?
symfony/messenger/Middleware/SendMessageMiddleware.php:
$this->logger->info('Received message {class}', $context);
Run Code Online (Sandbox Code Playgroud)
我正在尝试记录我们通过深度嵌套的 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 的标准化深度?
我们正在运行一个巨大的平台,该平台具有用于多个前端的单个数据库。现在我们将尝试识别我们的慢查询,并更好地了解我们的流量来自哪个页面。
我的想法是在每个 sql 查询中注入页面名称作为注释,以便在查看数据库时能够看到它使用 SHOW FULL PROCESSLIST
最后它应该是这样的: /*PAGE NAME*/ SHOW FULL PROCESSLIST
如果我在 sequel pro 中这样做,那么评论似乎会被列出:
如何使用侦听器/订阅者注入自定义评论来更新每个学说查询?
我正在尝试使用默认的 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)
这总是给出以下输出:
[[]] …
我想知道条令 2.2 的doctrine:migrations:diff和命令之间的区别make:migration
几个月前我正在使用doctrine:migrations:diff,但在 Symfony 文档中他们现在似乎更喜欢make:migration
这两个命令有什么区别?
我有一个枚举(感谢 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) 我在使用 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) 我正在尝试将数据库中的数据显示为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> </p>
<table width="729" border="0" >
<tr …Run Code Online (Sandbox Code Playgroud) php ×8
symfony ×7
doctrine ×2
doctrine-orm ×2
mysql ×2
bootstrap-5 ×1
enums ×1
gmail ×1
html ×1
javascript ×1
laravel ×1
logging ×1
messenger ×1
monolog ×1
send ×1
swiftmailer ×1
symfony5 ×1