Zend Framework 2是PHP 5.3+ 5.4(适用于Zend Framework 2.4+)或5.5+(适用于Zend Framework 2.5.0+)MVC框架和组件库。
你怎么知道 PHP 扩展中有一个 ArrayIterator
在 SaxonC PHP 扩展(用 C++ 编写)中,我正在编写实用程序,允许用户在 PHP 脚本中编写自定义函数,这些函数将在 XSLT、XPath 或 XQuery 中调用。因此我们必须处理...
如何配置ObjectMultiCheckBox以保留空元素?
我的表单中有以下元素,并且我尝试了在网络中找到的所有可能选项以允许元素为空值: $这个->添加(数组( '类型' => 'DoctrineModule\Form\Elem...
我有以下多重复选框: $这个->添加(数组( '类型' => 'DoctrineModule\Form\Element\ObjectMultiCheckbox', '名称' => '直接练习', '选项' => 一个...
我有以下application.config 返回数组( '模块' => 数组( '应用', '错误处理程序' ), 'module_listener_options' => 数组( '模块路径' => 数组( './
如何使用表值函数,例如 从 pv_my_table_valued_function(1) 选择 * “pv_my_table_valued_function(?)”作为我的表网关的表 例如,正常的实例化会...
我觉得我一定错过了一些非常简单的东西。这是一个非常简单的任务,我想做的就是得到类似的东西: 从lookup_items中选择* JOIN 查找 onlookup_items.lookup_id = Lookup.id ...
更新到 PHP 7.4 后,用户会话在 1 小时不活动后丢失
我有一个 PHP apache 应用程序,使用 ZendFramework 2 运行(我知道是老派,但我们正在迁移到更新的技术)。之前PHP版本是5.6,会话持续10天...
尝试创建自定义验证器,我需要使用其 isValid 方法中的服务。 如何注入该服务? 作为替代方案,我可以尝试从验证器内实例化服务
Zend Sql:将新的Where对象添加到已经具有where子句的Select对象会导致预先存在的where子句被删除
我使用以下代码基于 GET 请求参数构建查询,作为 REST 服务的一部分: foreach($params 作为 $key=>$param) { if($key != '页面' && $key != 'pageSiz...
ZF2 中的 Zend\Paginator\Adapter\DbSelect DISTINCT 问题
我在 ZF2 的分页器 DbSelect 适配器中使用 DISTINCT 查询时遇到问题。我的步骤是。 首先我创建了 Select 对象。 $select = new Select(); $选择->列( 大批( ...
我已在我的网络服务器上安装了 Mautic。没有错误。但是,当我尝试保存配置或保存新制作的页面时,Mautic 显示它正在工作,但尚未完成。 请...
我使用数据表编辑器来显示行 这是我正在使用的代码 变量编辑器; $(文档).ready(函数(){ 编辑器 = new $.fn.dataTable.Editor( { “ajaxUrl”:{ &q...
我想添加括号我的请求,但我不知道如何。你能帮助我吗 ? 我的 SQL 查询: 选择 * 来自 vw_my_asn_header WHERE 用户名 = 'toto' AND(发货编号如“20151106052811”...
以下教程,我能够很好地创建文件上传,并且根据zend教程,editAction几乎与Add操作相同。 如果我不在 editAction 中添加文件上传代码,它可以正常工作,但是在
Zend Framework 2 Doctrine 2 多对多实体关系问题
我有以下表格:电影、类别、电影_类别和实体: 电影.php 我有以下表格:电影、类别、电影_类别和实体: 电影.php <?php namespace Admin\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Table(name="films") */ class Film{ /** * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") * @ORM\Column(length=11) */ private $id; /** * @ORM\Column(type="string") */ private $name; /* .... */ /** * @ORM\ManyToMany(targetEntity="Category") * @ORM\JoinTable(name="films_categories", * joinColumns={@ORM\JoinColumn(name="film_id", referencedColumnName = "id")}, * inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}) */ private $categories; public function __construct(){ $this->categories = new ArrayCollection(); } public function getCategoriesNames(){ $names = array(); foreach($this->categories as $category){ $names[] = $category->getName(); } return $names; } public function getId(){ return $this->id; } public function setId($id){ $this->id = $id; } /* ... */ /** * @return Collection */ public function getCategories(){ return $this->categories; } public function addCategories(Collection $categories){ foreach($categories as $category){ $this->categories->add($category); } } public function removeCategories(Collection $categories){ foreach($categories as $category){ $this->categories->removeElement($category); } } } 类别.php <?php namespace Admin\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Table(name="categories") */ class Category { /** * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * @ORM\Column(type="integer") */ private $id; /* ... */ public function getId(){ return $this->id; } public function setId($id){ $this->id = $id; } /* ... */ } 我想要做的是创建一个表单和添加新电影并为其分配类别的操作。这是我使用的表格: FilmFieldset.php <?php namespace Admin\Form; use Zend\Form\Fieldset; use Zend\InputFilter\InputFilterProviderInterface; use DoctrineORMModule\Stdlib\Hydrator\DoctrineEntity; use Admin\Entity\Film; class FilmFieldset extends Fieldset implements InputFilterProviderInterface{ protected $entityManager; public function __construct($em){ parent::__construct('film'); $this->entityManager= $em; $this->setHydrator(new DoctrineEntity($em,'Admin\Entity\Film')) ->setObject(new Film()); #$this->setAttribute('method','post'); #$this->setAttribute('class','standardForm'); $this->add(array( 'name' => 'id', 'type' => 'hidden' )); /* ... */ $this->add( array( 'type' => 'DoctrineModule\Form\Element\ObjectSelect', 'name' => 'categories', 'attributes' => array( 'multiple' => 'multiple', ), 'options' => array( 'object_manager' => $em, 'target_class' => 'Admin\Entity\Category', 'property' => 'name', 'label' => 'Categories: ', 'disable_inarray_validator' => true ), ) ); } public function getInputFilterSpecification(){ return array( /* .... */ 'categories' => array( 'required' => true, ), ); } } FilmForm.php <?php namespace Admin\Form; use Zend\Form\Form; use Zend\Stdlib\Hydrator\ClassMethods; use Admin\Entity\Film; use Zend\InputFilter\InputFilter; use DoctrineModule\Stdlib\Hydrator\DoctrineObject as DoctrineHydrator; class FilmForm extends Form{ public function __construct($em){ parent::__construct('filmForm'); $this->setAttribute('method','post') ->setAttribute('class','standardForm') ->setHydrator(new DoctrineHydrator($em,'\Admin\Entity\Film')) ->setInputFilter(new InputFilter()); /* I register the fieldset through a service and not directly here */ // $this->add(array( // 'type' => new FilmFieldset($em), // 'options' => array( // 'user_as_base_fieldset' => true // ) // )); $this->add(array( 'name' => 'security', 'type' => 'Zend\Form\Element\Csrf' )); $this->add(array( 'name' => 'submit', 'type' => 'submit', )); $this->setValidationGroup(array( 'security', 'film' => array( 'categories', ) )); } } 添加操作: public function addAction() { $em = $this->getEntityManager(); $form = $this->getForm(); $film = new Film(); $form->bind($film); if($request->isPost()){ $post = array_merge_recursive( $request->getPost()->toArray(), $request->getFiles()->toArray() ); $form->setData($post); if($form->isValid()){ $categories = array(); foreach($post['film']['categories'] as $categoryId){ $categories[] = $em->getRepository('Admin\Entity\Category')->find($categoryId); } $film->addCategories($categories); $em->persist($film); $em->flush(); }else{ // the form is not valid } } 结果是各种错误和 ORMExcption,并显示消息“在关联 Admin\Entity\Film#categories 上找到类型实体,但期望 Admin\Entity\Category” 请帮帮我,我真的被这个吓坏了!谢谢你:) 据我所知,您的实体正在接收类似的东西Admin\Entity\Film#categories,在这一部分中,类别具有一定的价值。您的实体需要一个类型为 Admin\Entity\Film#categories 的对象。 要克服这个问题,你必须创建一个 public function SetCategory(Admin\Entity\Category Category) { $this->categories(or category or w/e your variable name is)= Category; } public function getCategory() { return $this->categories(or category or w/e your variable name is); } 然后在你的操作中,你必须将Category的对象传递给Film实体,就像这样 $Film->SetCategory($categoryObj); 当然你必须根据你的部分设置你的业务逻辑,但是这个错误应该被这个方法删除。 您需要为目标实体定义 FQCN。 改变: * @ORM\ManyToMany(targetEntity="Category") 至: * @ORM\ManyToMany(targetEntity="Admin\Entity\Category") 这与水合作用和延迟加载有关。 我不是这方面的专家,但是 #categories 是一个代理对象,当您要保存它时,它会抱怨,因为它需要是一个实际的集合,而不是集合的代理对象。 如果您采用了 noobie-php 的方法,您将在主对象上重新附加新的类别对象,因此它们不再是代理。 这令人沮丧,因为 Doctrine 本来应该避免很多麻烦,但在很多情况下它实际上并没有达到您自然期望的效果。 我前段时间发现了一个关于此问题的错误票,但现在找不到它 - 如果我能找到它,我会将其添加到此。
我似乎无法启动我的活动。这是我第一次和他们一起玩。如果你看的话,我在 init 方法中创建了一个事件,然后尝试在 onBootstrap 方法中触发它......
我们有样品的标准路线 大批( '类型' => '文字', '选项' => 数组( '路线' => '/应用程序', ...
使用 Zend Framework 2 TableGateway JOIN 子查询
我正在尝试使用 Zend Framework 2 进行查询,其中 JOIN 语句中有一个 SELECT 。到目前为止,这是我尝试过的,但是将 SELECT 对象注入 join() 的第一个参数确实......
我找到了这个主题和答案:Change layout in the controller of Zend Framework 2.0 :: Answer 我正在尝试这样做: 公共函数登录操作(){ if ($this->zfcUserAuthentication()->
在单选或复选框项下嵌套字段集:Zend Framework 2
我想在每个单选/复选框项目下创建一个字段集。 例如 你喜欢哪些动物: [x] 猫 [猫相关问题的字段集] [ ] 小狗 [狗相关问题字段集...