Bug #18662

Storing data crashes somehow with MM tables

Added by Georg Ringer over 11 years ago. Updated about 9 years ago.

Status:
Closed
Priority:
Should have
Assignee:
Category:
-
Target version:
-
Start date:
2008-04-21
Due date:
% Done:

0%

TYPO3 Version:
4.2
PHP Version:
5.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Sorry guys but I think I have found some kind of blocker and I am pretty sure it is not an error in my code.

After trying to save the mm-inline-record, I get the error msg "these fields are not properly updated in database: (linkit) Probably value mismatch with fieldtype."

Everything works fine with 4.1.6 and also if I change just the tceform-file to an older one.

I attached a test extension. Just install it, create a record "local" and inside it a record "foreign".

I'm sorry if it is my fault
(issue imported from #M8191)

T3X_test-0_0_0-z-200804212107.t3x (14.7 KB) Administrator Admin, 2008-04-21 21:25

8191.diff View (864 Bytes) Administrator Admin, 2009-10-29 13:25

8191_43trunk.diff View (781 Bytes) Administrator Admin, 2009-10-29 13:41

8191_44trunk.diff View (1001 Bytes) Administrator Admin, 2010-02-21 13:32

0008191_v3_4-3.patch View (1.37 KB) Administrator Admin, 2010-02-27 15:56

0008191_v4_4-2.patch View (1.37 KB) Administrator Admin, 2010-02-27 16:10

History

#1 Updated by Oliver Hader over 11 years ago

The MM way is not the preferred way of storing information with IRRE - maybe I should mark this as deprecated in CoreAPI...
The m:n asymmetric/symmetric style, where a relationship record on the intermediate table is again in TYPO3 style (with uid, pid, etc.) is preferred here.

Concerning your test example:
  • tx_test_local.linkit is defined as INT in database
  • tx_test_local.linkit is defined as inline without foreign_field, this means that releated records will be stored to linkit as CSV, e.g. "1,2,3,4,5"
    -> mismatch INT vs. TEXT

#2 Updated by Peter Kuehn almost 10 years ago

@olly: I agree on that at least for new projects, but I think it would be great
to have the ability to completely switch an existing relation from
old-school
'config' => Array(
'type' => 'select',
'foreign_table' => 'person',
'MM' => 'association_person_mm',
),
to IRRE by simply changing the type to 'inline' without having to change
the structure and content of the database (which is often not possible
for various reasons).

patch is pending in corelist and was tested succesfull with georgs (thnx for that!) testing ext an my current project.

gRTz
pekue

#3 Updated by Franz Koch over 9 years ago

It'll be great if the patch would make it into the core. Reason is, that extbase is suggesting to use MM-tables for relations. So it's now either or?

#4 Updated by Franz Koch over 9 years ago

I just added a patch for 4.4 trunk respecting the latest changes on MM handling. In order to not have to maintain the new and more complex MM code twice, my solution is to simply call checkValue_group_select_processDBdata, of which IRRE previously was part of.

#5 Updated by Oliver Hader over 9 years ago

Committed to SVN
  • TYPO3_4-2 (rev. 7065)
  • TYPO3_4-3 (rev. 7066)
  • Trunk (rev. 7067)

Also available in: Atom PDF