小编sch*_*ldi的帖子

如何在Doctrine2中访问PrePersist LifecycleCallback上的旧值

我在Doctrine2中有一个实体,并将HasLivecycleCallbacks与PrePersist一起使用.一般来说,这工作正常,但我想更改版本,当我的实体中的某些字段更改.我有机会获得旧的价值观吗?或者只是已更改的键?

/**
 * @ORM\HasLifecycleCallbacks
 */
class Person {


    /**
     * @PrePersist
     * @PreUpdate
     */
    public function increaseVersion() {


            if ( $this->version == null ) {
                $this->version = 0;
            }
            // only do this, when a certain attribute changed
            $this->version++;
    }
}
Run Code Online (Sandbox Code Playgroud)

php events lifecycle doctrine

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

如何使用Apollo Client执行批量突变

我尝试将ApolloClient 2.1与新的Mutation Component一起使用。

简单的用例正在工作,但是现在我有了一些更复杂的东西。

我要实现的是查询数据并将它们放在列表中,然后对该列表进行排序(在这里通过react-sortable-hoc),一旦排序,我想为列表中的所有元素更新新位置。

因此,基础是这样的,它适用于简单的查询:

const query = gql`
{
  items( order:{by:"position", direction:"desc"}) {
    id
    name
    position
  }
}`

const ItemView extends Component {
    onSortEnd = ({ oldIndex, newIndex }) => {
       console.log("Sort ended: ", oldIndex, newIndex);
    }

    render() {
     <Query query={query}>
        {({ loading, data, error }) => {
          if (loading) return <p>Loading...</p>;
          if (error) return <p>Error</p>;

          return (
            <ItemList items={data.items} onSortEnd={this.onSortEnd} />
          )
        }}
      </Query>
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我确实在很多方面都在努力进行突变。

我想我需要包装突变成分。但是,我该如何在其中提供GraphQL查询,因为我想通过多次触发类似的查询来进行批量修改,例如

mutation {
  updateItem1: updateItem(id: 457092155, input: {position: 1}) { …
Run Code Online (Sandbox Code Playgroud)

reactjs graphql apollo-client

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

React Hot Loader - 忽略对未接受模块的更新

我是React和React Hot Loader的新手.我有一个Symfony 2.7应用程序,并开始使用webpack并做出反应.

一般来说一切正常,但是当我想使用Hot Reloading时,我收到错误:

Ignored an update to unaccepted module ./app/Resources/js/app.js -> 0
[HMR] The following modules couldn't be hot updated: (They would need a full reload!)
[HMR]  - ./app/Resources/js/app.js
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏任何基本的东西.我很新,所以这可能是一个简单的答案.非常感谢

这是我的基本代码:

的package.json

"dependencies": {
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "react": "^15.6.1",
    "react-dom": "^15.6.1",
    "react-hot-loader": "^1.3.1",
    "webpack-dev-server": "^2.6.1"
  }
Run Code Online (Sandbox Code Playgroud)

app.js

import React from 'react';
import ReactDOM from 'react-dom';
// import ReactHotLoader from 'react-hot-loader';
import Component from './component.js';

// const element = …
Run Code Online (Sandbox Code Playgroud)

reactjs react-hot-loader

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

如何使用 @react-testing-library 测试 @mui/x-date-pickers

我尝试使用 DatePicker 组件为我的表单编写测试。我在最新版本 6.2.0 中使用@mui/x-date-pickers。

当我运行下面的测试时,我收到消息:

“TestingLibraryElementError:无法找到文本为:15 的标签”

问题是,如何在测试表中选择特定日期。

任何帮助表示赞赏。

import React, { Component } from "react";
import {
    render,
    fireEvent,
    screen
} from "@testing-library/react";
import "@testing-library/jest-dom";


import {DatePicker} from '@mui/x-date-pickers/DatePicker'; // version 6.2.0
import {  LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';


test("renders DatePicker", async () => {
    const handleChange = jest.fn();
    const { getByLabelText } = render(
        <LocalizationProvider dateAdapter={AdapterDateFns}>
            <DatePicker
                label="Select a date"
                value={null}
                onChange={handleChange}

            />
        </LocalizationProvider>
    );

    const input = getByLabelText('Select a date');
    fireEvent.focus(input); …
Run Code Online (Sandbox Code Playgroud)

datepicker reactjs material-ui react-testing-library

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

Symfony2:如何根据数据为绑定PRE_SET_DATA中的字段添加表单约束

我在Symfony 2中有一个表单,基本上有两个字段:

public function buildForm(FormBuilderInterface $builder, array $options) {

    $builder->add('contactType', 'select', array(  'choices' => $contactTypes ))
            ->add('value', 'text');
}
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个侦听FormEvents :: PRE_SET_DATA事件的EventSubscriber.我真正想要做的是根据contactType的值改变验证方式(数字值从1到4,代表电子邮件,移动,固定电话和传真).

我按照本教程http://symfony.com/doc/current/cookbook/form/dynamic_form_generation.html

但我无法弄清楚,如何在值字段中添加约束.

谁能帮我?非常感谢提前.

forms validation symfony

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

防止重新渲染在包装组件中启动 useState 的同级组件

我对 React 不太有经验,但我有一个非常简单的设置。

export default function App() {
  const [title, setTitle] = useState("still-empty");

  const myFunction = title => {
    setTitle(title);
  };

  return (
    <div className="App">
      <ComponentA myFunction={myFunction} />
      <br />
      <br />
      <ComponentB title={title} />
    </div>
  );
}



const ComponentA = ({ myFunction }) => {
  console.log("Rendering Component A");

  return (
    <div onClick={() => myFunction(Math.random() * 1000)}> Component A </div>
  );
};

export default ComponentA;


const ComponentB = ({ title }) => {
  return <div> Title : {title}</div>;
};

export …
Run Code Online (Sandbox Code Playgroud)

rerender reactjs react-hooks

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

Symfony2 - Doctrine2:跨数据库连接列抛出Mapping-Exception

嗨想要在两个实体之间建立联接.实体位于不同的数据库中:

以下是我设置数据库配置的方法:

doctrine:
    dbal:
    default_connection: default
    connections:
        default:
            driver:   %database_driver%
            host:     %database_host%
            port:     %database_port%
            dbname:   %database_name%
            user:     %database_user%
            password: %database_password%
            charset:  UTF8
            mapping_types:
                enum: string
        data_warehouse:
            driver:   %database_data_warehouse_driver%
            host:     %database_data_warehouse_host%
            port:     %database_data_warehouse_port%
            dbname:   %database_data_warehouse_name%
            user:     %database_data_warehouse_user%
            password: %database_data_warehouse_password%
            charset:  UTF8
            mapping_types:
                enum: string

    orm:
    auto_generate_proxy_classes: %kernel.debug%

    default_entity_manager: default

    entity_managers:
        default:
            connection: default
            mappings:
                MyBundle1: ~


        data_warehouse:
            connection: data_warehouse
            mappings:
                MyBundle2: ~
Run Code Online (Sandbox Code Playgroud)

这些是我的实体:

namespace My\Bundle1\Entity;
use My\Bundle1\Entity\MyBundle2Entity;
class MyBundle1Entity
{

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id …
Run Code Online (Sandbox Code Playgroud)

php cross-database symfony doctrine-orm

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

Symfony2 trans_default_domain无效

http://symfony.com/doc/current/book/translation.html#twig-templates的最后,我读到了

{% trans_default_domain "app" %}
Run Code Online (Sandbox Code Playgroud)

为整个模板设置翻译域.但对我来说它不起作用.调用

app/console translation:extract de --dir=src/ --output-dir=app/Resources/translations --output-format=xliff --keep
Run Code Online (Sandbox Code Playgroud)

只需将所有消息放入messages.de.xliff文件中即可.

但是,如果我手动为给定的标签设置域,如

{{ label.name|trans({}, 'app') }}
Run Code Online (Sandbox Code Playgroud)

并执行与上面相同的提取命令,然后我得到一个新文件app.de.xliff

使用时还有什么可做的trans_default_domain吗?

translation symfony twig

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

如何识别 Symfony2 / Twig 中的隐藏表单字段

我是 Symfony2 的新手,尝试渲染表单。基础知识很清楚,但我对隐藏表单字段有疑问。

我尝试在不同的表格单元格中呈现每个表单小部件。但是当使用 for 循环时,第一个单元格将填充 _token 小部件。但我喜欢随后使用 form_rest 渲染隐藏字段。

<table>
  <tr>
    {% for element in form %}
      <td class="header">{{ form_widget(element) }} </td>
    {% endfor %}
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是类似的东西

<table>
  <tr>
    {% for element in form %}
      {% if element.type != 'hidden' %} 
        <td class="header">{{ form_widget(element) }} </td>
      {% endif %}
    {% endfor %}
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?多谢。

hidden symfony twig

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