小编OK *_*ure的帖子

Symfony preSubmit表单事件更改未保留在controller/persist中

我不得不对集合(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)

php forms symfony

7
推荐指数
0
解决办法
1034
查看次数

如何在 Rust 中生成一个分离的命令/进程?

我编写了一个小的可执行文件来为 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)

process rust

5
推荐指数
0
解决办法
2235
查看次数

从源数组创建一个新的重新索引的数组,而不使用PHP中的foreach

我创建了一个导入脚本,将包含车辆品牌和模型的电子表格转换为相关的数据库实体.我在电子表格中的源数组看起来像这样(每个都是一个电子表格行):

$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)

php arrays

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

标签 统计

php ×2

arrays ×1

forms ×1

process ×1

rust ×1

symfony ×1