大佬教程收集整理的这篇文章主要介绍了php – Symfony2 Propel Collection undefined offset:2,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Notice: Undefined offset: 2
堆栈跟踪
in src/app/MyBundle/Model/om/BaseLabelsLabelsLinesR_217_11845@apsQuery.php at @R_682_5450@1 $cton0 = $this->getNewCriterion(LabelsLabelsLinesR_217_11845@apsPeer::ID,$key[0],Criteria::EQUAL); $cton1 = $this->getNewCriterion(LabelsLabelsLinesR_217_11845@apsPeer::LABEL_ID,$keY[1],Criteria::EQUAL); $cton0->addAnd($cton1); $cton2 = $this->getNewCriterion(LabelsLabelsLinesR_217_11845@apsPeer::LABEL_LInes_ID,$keY[2],Criteria::EQUAL); $cton0->addAnd($cton2); $this->addOr($cton0); }
我已经在下面发布了相关代码,但是由于存在大量代码.我们想知道是否有人遇到过同样的问题.
我已经使用不同的代码发送了一个错误报告,这会产生相同的错误但是我没有得到回复.错误报告是here.
这是相关架构的片段:
<table name="labels_labels_lines_maps" isCrossRef="true"> <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/> <column name="label_id" type="Integer" primaryKey="true"/> <column name="label_lines_id" type="Integer" primaryKey="true"/> <foreign-key foreignTable="labels" ondelete="cascade"> <reference local="label_id" foreign="id"/> </foreign-key> <foreign-key foreignTable="labels_lines" ondelete="cascade"> <reference local="label_lines_id" foreign="id"/> </foreign-key> <vendor type="mysql"> <parameter name="ENGIne" value="InnoDB" /> <parameter name="Charset" value="utf8" /> </vendor> </table> <table name="labels_lines"> <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/> <column name="placeholder_text" type="varchar" size="150"/> <column name="font_id" type="Integer"/> <column name="font_size" type="Integer"/> <column name="x_axis" type="Integer"/> <column name="y_axis" type="Integer"/> <column name="width" type="Integer"/> <column name="height" type="Integer"/> <column name="colour" type="varchar" size="20"/> <column name="angle" type="Integer"/> <column name="is_volume" type="Boolean"/> <column name="is_percentage" type="Boolean"/> <column name="is_productof" type="Boolean"/> <column name="is_type" type="Boolean"/> <column name="is_occasion" type="Boolean"/> <foreign-key foreignTable="font" ondelete="cascade"> <reference local="font_id" foreign="id"/> </foreign-key> <vendor type="mysql"> <parameter name="ENGIne" value="InnoDB" /> <parameter name="Charset" value="utf8" /> </vendor> </table> <table name="occasion"> <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/> <column name="occasion" type="varchar" size="200"/> <vendor type="mysql"> <parameter name="ENGIne" value="InnoDB" /> <parameter name="Charset" value="utf8" /> </vendor> </table> <table name="font"> <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/> <column name="name" type="varchar" size="100"/> <column name="LOCATIOn" size="300"/> <vendor type="mysql"> <parameter name="ENGIne" value="InnoDB" /> <parameter name="Charset" value="utf8" /> </vendor> </table>
下面是视图(没有任何样式):
{{ form_start(form) }} {{ form_row(form._token) }} <ul class="labelsliness list-group" data-prototype="{{ form_widget(form.labelsliness.vars.prototypE)|e }}"> {% for lines in form.labelsliness %} <li>{{ form(lines) }}</li> {% endfor %} </ul> {{ form_row(form.savE) }} {{ form_end(form) }} <script> var $collectionHolder; var $addLinesLink = $('<button class="add_line_link btn btn-priMary">Add a line</button>'); var $newLinkLi = $('<li></li>').append($addLinesLink); $(document).ready(function(){ $collectionHolder = $('ul.labelsliness'); $collectionHolder.append($newLinkLi); $collectionHolder.data('index',$collectionHolder.find(':input').length); $addLinesLink.on('click',function(E) { e.preventDefault(); addLineForm($collectionHolder,$newLinkLi); }); }); function addLineForm($collectionHolder,$newLinkLi) { var prototype = $collectionHolder.data('prototype'); var index = $collectionHolder.data('index'); var newForm = prototype.replace('/__name__/g',indeX); $collectionHolder.data('index',index + 1); var $newFormLi = $('<li></li>').append(newForm); $newFormLi.append('<button class="remove-line btn btn-danger">Remove</button>'); $newLinkLi.before($newFormLi); $('.remove-line').click(function(E){ e.preventDefault(); $(this).parent().remove(); return false; }); } </script>
表格处理:
public function buildForm(FormBuilderInterface $builder,array $options) { $builder ->add("labelsliness","collection",array( "type" => new LabelsLinesType(),"allow_add" => true,"allow_delete" => true,"by_reference" => false )) ->add("save","submit"); } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'AJSharp\EPCBundle\Model\Labels',)); } public function getName() { return "label_form"; }
最后,下面是控制器.
public function editAction(request $request,$id = null) { $labels = LabelsQuery::create()->findPk($id); $form = $this->createForm(new EditLabelType(),$labels); $form->handlerequest($request); if ($form->isValid()) { $labels->save(); return $this->redirect($this->generateUrl("_admin_labels")); } return $this->render("AppLabelBundle:Admin:edit.html.twig",array("form" => $form->createView())); }
<table name="labels_labels_lines_maps" isCrossRef="true"> <column name="id" type="Integer" required="true" autoIncrement="true" primaryKey="true"/> <column name="label_id" type="Integer" primaryKey="true"/> <column name="label_lines_id" type="Integer" primaryKey="true"/> <foreign-key foreignTable="labels" ondelete="cascade"> <reference local="label_id" foreign="id"/> </foreign-key> <foreign-key foreignTable="labels_lines" ondelete="cascade"> <reference local="label_lines_id" foreign="id"/> </foreign-key> <vendor type="mysql"> <parameter name="ENGIne" value="InnoDB" /> <parameter name="Charset" value="utf8" /> </vendor> </table>
我怀疑如果你选择一件事并坚持下去,你的很多麻烦都可能消失.删除id并让主复合键表示两个完全有效的外表,或者将PRIMary KEY更改为每个外键上的UNIQUE约束,将主键保留为id.这也完全有效.最终,您的决定将基于您的设计要求.
另一个注意事项:您可能想要也可能不想做heavyIndexing
,特别是如果您引用主键中的各个列.复合主键为所有三列创建索引,而不是单独创建每个列.这在您的项目中可能重要,也可能不重要,但我认为值得指出.
以上是大佬教程为你收集整理的php – Symfony2 Propel Collection undefined offset:2全部内容,希望文章能够帮你解决php – Symfony2 Propel Collection undefined offset:2所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。