我不得不对集合(Symfony表单CollectionType
)进行更改以尊重排序和实体删除,并且我正在使用preSubmit
事件监听器根据此问题建议进行更改.但是,这些更改并未使其返回到控制器/持久性.
preSubmit
在使用事件并在事件上设置后数据是正确的,$event->setData($data)
但在提交后不会保留更改$form->getData()
我提前提交抽象类:
abstract class AbstractEntityFormType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addEventListener(FormEvents::PRE_SUBMIT, [$this, 'onPreSubmit']);
}
/**
* @param FormEvent $event
*/
public function onPreSubmit(FormEvent $event)
{
$form = $event->getForm();
$data = $event->getData();
$document = $form->getData();
foreach ($form->all() as $field) {
/** @var FormInterface $field */
$fieldName = $field->getName();
if ($field->getConfig()->getType()->getInnerType() instanceof CollectionType) {
// .. …
Run Code Online (Sandbox Code Playgroud) 我编写了一个小的可执行文件来为 Node 开发环境启动 WebSocket 服务器。
在一个单独的 NodeJS 应用程序(在 Electron 中运行)中,我child_process.spawn()
用来运行二进制文件并在应用程序启动时启动服务器。
这个服务器子进程劫持了节点child_process
生成的命令并且没有退出,所以我无法捕获退出代码或处理故障。我只需要知道它是否开始。
我如何在 Rust 中启动这个过程,以便我可以退出(成功、失败等)并且孩子继续运行?
我的相关部分main.rs
:
extern crate ws;
use std::env;
use std::process::Command;
use ws::{connect, CloseCode};
fn main() {
let args: Vec<String> = env::args().collect();
let command = &args[1];
if command == "activate" {
println!("Activating");
stop_server_process();
start_server_process();
}
}
fn start_server_process() {
let mut command;
if cfg!(windows) {
command = Command::new(".\\node_modules\\.bin\\ws.cmd");
} else {
command = Command::new("./node_modules/.bin/ws");
}
command.arg("--websocket");
command.arg("test/mock-api/ws-server.js");
command.arg("-p");
command.arg("9401");
match command.spawn() {
Ok(child) …
Run Code Online (Sandbox Code Playgroud) 我创建了一个导入脚本,将包含车辆品牌和模型的电子表格转换为相关的数据库实体.我在电子表格中的源数组看起来像这样(每个都是一个电子表格行):
$rows = [
['Brand A', 'Model A'],
['Brand A', 'Model A'],
['Brand A', 'Model B'],
['Brand A', 'Model B'],
['Brand A', 'Model B'],
['Brand A', 'Model C'],
['Brand B', 'Model A'],
['Brand B', 'Model B'],
['Brand B', 'Model B'],
['Brand B', 'Model B'],
['Brand B', 'Model C'],
['Brand B', 'Model C'],
];
Run Code Online (Sandbox Code Playgroud)
我想要这种格式的数据:
$data = [
'Brand A' => [
'Model A',
'Model A',
'Model B',
'Model B',
'Model B',
'Model C',
],
'Brand B' => [
'Model A', …
Run Code Online (Sandbox Code Playgroud)