Adding a field to Many-to-many middle table

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • vampirefrog
    Member
    • May 2017
    • 45

    Adding a field to Many-to-many middle table

    Hello. I have a table, let's call it People, and another table Languages. I'd like for each person to have a language and a fluency level (1 to 5). The catch is that I'd like to have it show similar to a 'Link multiple field'. Currently this is possible, but without the extra field 'Fluency level'. Is there a way to add this field to the link multiple field view? For example, for fluency level 4 english, see pic. Thanks!
  • tanya
    Senior Member
    • Jun 2014
    • 4308

    #2
    Hello
    Check, how implemented relations account - contact + accountRole (title), or opportunity and contact with role

    Comment

    • vampirefrog
      Member
      • May 2017
      • 45

      #3
      Perfect, that looks good. I will have a look at the code. Thank you tanya.

      Comment

      • phil
        Junior Member
        • May 2018
        • 12

        #4
        I am trying to achieve the same thing.
        After looking at the relationships between Account and Contact, I created fields like accountRole but I could not get the field to show up after assigning an entity to the contact.

        Not sure how to completely copy the contacts - accounts scheme to a new entity with subfields like "accountRole".

        What I want to achieve is the following:

        Entity "Contact" has a connection to a "Product" but for every product that is assigned to the "Contact" a price, amount etc. must be set that is attached to this unique relationship (middle table).
        So for the same product different contacts can have different prices, amounts etc.

        I only tried the entity manager and layout manager but no code adjustments.
        Is this even possible without code adjustments?

        Thanks in advance!
        Last edited by phil; 05-04-2018, 09:01 AM.

        Comment

        • tanya
          Senior Member
          • Jun 2014
          • 4308

          #5
          Originally posted by tanya
          I show you the similar usage in EspoCRM but with Accounts and Contacts.
          but here you can set the role (title) of contact on Contact view in Accounts field, but in Account you can see the panel of related contacts with roles.

          Here you can set the role on Property view, but need this field on Contact view in Properties relationship table. That's why I ask you to check, how does implemented in Account and Contact enittyDefs.



          In property layouts create listForContact.json, in clientDefs relate this entity to the panel

          https://github.com/espocrm/espocrm/b...count.json#L50
          Hi,
          open application/Espo/Modules/Crm/Resources/metadata/entityDefs/Contacts.json and Opportunity.json (I think it's easier to understand)

          You can create your relationship with EntityManager (what you did), after you can improve this relationship

          Opportunity > links > contacts has "additionalColumns" option - here you need to define your additional fields for data base
          in Contact fields defined opportunityRole field,
          in Opportunity > contactRole and contacts with columns. Also you need to create a view for your linkMultiple field

          Comment


          • rabii
            rabii commented
            Editing a comment
            Hey Tanya,

            What about creating these views e.g contacts field view in opportunity with role, if we create the custom fields in similar place will these field show in : EnitiyManager -> fields and also in LayoutManager ?

            I hope there is a more simpler step by step reply explaining how to create fields in both related entities and their view

          • jovi
            jovi commented
            Editing a comment
            Thank you Tanya for answer. It really helps (but also require some code researching )

            How I can get additional fields in API request?

            For example, if I do searching by GET /..../MyEntity?select=myFieldIds - I got linked items with names and ids but without additional fields. I already try many combinations like myFieldColumns, myFieldFieldNames and many other - it did't help.
            If I request full record like GET /..../MyEntity/SOME_ID - I got all needs, but doing requests for every searching result is too slow and stupid
        • phil
          Junior Member
          • May 2018
          • 12

          #6
          That looks really promising!
          Thank you very much for your quick help.

          Comment

          • eymen-elkum
            Active Community Member
            • Nov 2014
            • 472

            #7
            you may also declare the middle table as a standard entity, something like ContactsAccounts, then you can link it with both contact and account
            then you can define fields as you want, the only limit is that you cannot set the related records on the fly while you are creating the main entity.
            if this limitation is painful, you can use an extension I made that help for inserting the related entities on the fly like in this video
            CEO of Eblasoft
            EspoCRM Expert since 2014
            Full Stack Web Developer since 2008
            Creator of Numerous Successful Extensions & Projects​

            Comment

            Working...