我在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) 我尝试将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) 我是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) 我尝试使用 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) 我在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
但我无法弄清楚,如何在值字段中添加约束.
谁能帮我?非常感谢提前.
我对 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) 嗨想要在两个实体之间建立联接.实体位于不同的数据库中:
以下是我设置数据库配置的方法:
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) 在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吗?
我是 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)
有人能帮我吗?多谢。
reactjs ×4
symfony ×4
php ×2
twig ×2
datepicker ×1
doctrine ×1
doctrine-orm ×1
events ×1
forms ×1
graphql ×1
hidden ×1
lifecycle ×1
material-ui ×1
react-hooks ×1
rerender ×1
translation ×1
validation ×1