当我提交symfony2表单时,我收到以下错误:
必须管理或计划实体以便进行单次计算
这个错误是什么意思?
我正在使用旨在向DB添加新项目的表单.我ManyToOne在表格中有多个关系.
/**
* This code is aimed at checking if the book is choseen and therefore whether any further works may be carried out
*/
$session = new Session();
if(!$session->get("App_Books_Chosen_Lp")) return new RedirectResponse($this->generateUrl('app_listbooks'));
$request = $this->get('request');
$em = $this->getDoctrine()->getManager();
if($item_id != null)
{
/* THIS CODE IS NOT EXECUTED IN THE GIVEN CASE */
}
else
{
// Add
$item = new Items();
$form = $this->createForm(new ItemsType(), $item);
$form->add('save', 'submit', array('label' => 'Add item'));
} …Run Code Online (Sandbox Code Playgroud) 我可以在服务中执行重定向到另一个控制器吗?
我已经根据@Artamiel提供的示例实现了一项服务.
我的控制器执行的功能代码如下所示:
public function verifyanddispatch() {
$session = $this->request->getSession();
if(!$session->get("App_Books_Chosen_Lp")) return new RedirectResponse($this->router->generate('app_listbooks'));
}
Run Code Online (Sandbox Code Playgroud)
我已经检查过并且!$session->get("App_Books_Chosen_Lp")是真的.尽管如此,我没有被重定向到app_listbooks控制器.
我认为这是因为我不直接在控制器而不是服务中返回重定向响应.
我正在使用symfony 2,我对代码分离有疑问.我想确保我正确理解控制器中应该包含哪些元素,服务中的内容以及实体中的内容.
让我们想象一下,我有需要显示的文档列表.在显示之前的每个文档上,我还必须执行一些逻辑操作(例如,添加两个变量).
理解实体类只关注单个实体上的数据检索和操作.我不应该输入任何自定义代码.据我所知,这应该由服务完成.
但我应该:
我宁愿认为第一种方法适合保持控制器薄(瘦控制器,大型模型),但这种方法是否合适?实体中应该有什么代码,控制器中有什么代码?服务中有什么代码?
特别是我应该在哪里与实体经理相关 - 在控制器中还是在服务中?
让我们假装在我的应用程序的许多地方我需要检查文档是否已完成,然后才允许用户执行任何操作(例如编辑它).这绝对应该是在服务中,因为需要另一个服务来检查这个.但是,我是否应该将文档实体对象加载到控制器中,将其发送到服务以验证它是否可以最终确定,或者更确切地说是在服务中加载文档并执行检查?
如何在symfony2服务的代码中检查用户角色?我应该只是将用户角色对象发送到服务,还是有解决方案允许我从服务级别进行检查?
我正在尝试让select2图书馆使用symfony2脚本。
我正在尝试实现提供https://select2.github.io/examples.html页面的基本示例。
因此,我在页面标题中添加了:
<!-- SELECT 2-->
<link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css" rel="stylesheet" />
<script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"></script>
<!-- /SELECT2 -->
Run Code Online (Sandbox Code Playgroud)
并按照示例中提供的代码进行操作:
<script type="text/javascript">
$(document).ready(function() {
$(".js-example-basic-single").select2();
});
</script>
<select id="appbundle_items_accountdebet" name="appbundle_items[accountdebet]" class="js-example-basic-single"><option value="1">001 - ?rodki trwa?e x</option><option value="2">001-001 - ?rodek trwa?y 1 </option><option value="3">001-002 - ?rodek trwa?y 2 </option><option value="4">002 - Kasa</option><option value="7">04-33 - test</option><option value="10">05 - dff</option></select>
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于没有视觉变化,我似乎做错了什么。
整页代码:
<!-- app/Resources/views/base.html.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Accounting Book's Online</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta …Run Code Online (Sandbox Code Playgroud)