我是学习 Symfony(Symfony 4.1.6)的新手,无法弄清楚这一点。
我有一个数据库,它包含许多用于填充 htmlselect类型输入的表格。它们在数据库中以确保其他记录中的外键约束。
有没有办法将这些数据“添加”到数据库中并进行跟踪?(通过 git)还是我应该只保留“插入”的 SQL 文件
我看过灯具,但它们似乎主要用于虚拟数据。我想插入真实数据。如果有的话,什么是“最佳实践”?
****更新****
我应该补充一点,这个项目的开发是在 Symfony 之外开始的,所以数据库已经用少量记录手动创建了。我曾经bin/console doctrine:mapping:import 'App\Entity' annotation --path=src/Entity构建实体。
是否有类似的方法也可以从数据库中“吸出”少数记录?
也许我只需要手动将 SQL 插入语句添加到第一个(或第二个)迁移文件中。
我无法弄清楚这一点,并且没有搜索产生结果。
查询:
$QUERY = "SELECT rp.perm_id
FROM ac_br_user-roles AS ur
JOIN ac_br_roles-permissions AS rp ON rp.role_id = ur.role_id
WHERE ur.user_id = ?";
Run Code Online (Sandbox Code Playgroud)
我尝试使用``反引号''单引号和{}大括号将表名和\反斜杠括在 -处以转义-连字符,但无济于事。
错误:
PDOException:SQLSTATE [42601]:语法错误:7 错误:“-”第 2 行或附近的语法错误:FROM ac_br_user-roles AS ur ^ in
或“位于或附近”无论我在第 2 行尝试使用的转义字符
更新
$QUERY = 'SELECT rp.perm_id
FROM `ac_br_user-roles` AS ur
JOIN `ac_br_roles-permissions` AS rp ON rp.role_id = ur.role_id
WHERE ur.user_id = ?';
Run Code Online (Sandbox Code Playgroud)
" LINE 2: FROMPDOException:SQLSTATE [42601]:语法错误:7 错误:“ ac_br_user-roles` AS …
我已经断断续续地这样做了几天,但我对 RexEx 的掌握程度并不好。是的,我知道 RegEx 不是用于解析 HTML 的。我正在对 CKEditor 输入进行服务器端“清理”,它已经做到了这一点,但仅限于客户端。
剥离所有白名单标签后...
第一:删除所有用或引号$html = preg_replace(' on\w+=(["\'])[^\1]*?\1', '', $html); 正确引用的事件属性'"
第二:$html = preg_replace(' on\w+=\S+', '', $html);*删除那些没有引号但仍然可以触发的,例如。onclick=blowUpTheBase()
我想做的是确保 onEvent 位于<&之间>,但只有当 onEvent 属性是标签后的第一个属性时,我才能让它工作。我尝试的一切最终都会捕获大部分代码。我就是懒得够。
前任。$html = preg_replace('<([\s\S]?)( on\w+=\S+) ([\s\S]*?)>', '<$1 $3>', $html);
编辑:我将选择 @colburton 的答案,因为 RegEx 是我所要求的。我也会将它用于我的特殊情况,因为它会带来技巧。(无论如何,这是一个内部应用程序)
但
我要感谢@Casimir et Hippolyte 的回答,因为它提供了一个很好的例子并解释了如何以“正确的方式”做到这一点。我将很快使用 DOMDocument 编写一个函数,它将成为我处理 RTE/WYSIWYG/HTML 输入的首选方式。
在 VS Code 中,我想进行以下搜索和替换,但它不仅仅匹配大写字母。这是一个错误/缺陷还是我错过了什么?
查找:\{\$([A-Z_]+)\}
替换:{$1}
所以这:
$(document).ready(function ()
{
generarEstado('{$GRAPH_BY_STATUS} ','{$nombreSitio}','{$nombreSitioCorto}');
generarSexo('{$GRAPH_BY_SEX} ','{$nombreSitio}','{$nombreSitioCorto}');
generarSexGrade('{$GRAPH_BY_SEX_AND_GRADE} ','{$nombreSitio}','{$nombreSitioCorto}');
});
Run Code Online (Sandbox Code Playgroud)
应该变成:
$(document).ready(function ()
{
generarEstado('{GRAPH_BY_STATUS} ','{$nombreSitio}','{$nombreSitioCorto}');
generarSexo('{GRAPH_BY_SEX} ','{$nombreSitio}','{$nombreSitioCorto}');
generarSexGrade('{GRAPH_BY_SEX_AND_GRADE} ','{$nombreSitio}','{$nombreSitioCorto}');
});
Run Code Online (Sandbox Code Playgroud)
但它也符合其他{$nombreSitio}和{$nombreSitioCorto}等
我的情况是这样的,我想从数据库中删除一条用户记录。这很简单。但有两种可能的结果。
我的想法是,针对实体采取的行动Users应该在,UsersRepository所以这就是我的方法所在deleteUser($user)。是通过 ParamConverter 自动查询的$user用户对象并传递给存储库方法。
因为工作是在存储库中完成的,所以对我来说提供反馈是有意义的。
我如何addFlash()从我的App\Repository\UsersRepository extends ServiceEntityRepository?或者我应该在其他地方做这个“工作”?