We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 8274 ☆ A M B ☆
    • 222 Posts
    My error log is filling up with this error:
    No foreign key definition for parentClass: productLine using relation alias: Resource

    when ever I save a nested migxdb formtab.

    The data saves to the db properly, but the error is logged everytime. What is happening?

    Schema:
    <?xml version="1.0" encoding="UTF-8"?>
    <model package="rhythmcatalog" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1">
            <object class="productLine" table="rli_product_line" extends="xPDOSimpleObject" >
            <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
    <field key="priority" dbtype="integer" precision="10" phptype="integer" attributes="unsigned" null="true" default="100"/>
    <field key="description" dbtype="mediumtext" phptype="string" null="true" defualt=""/>
            <field key="published" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
            <field key="createdby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />
            <field key="createdon" dbtype="datetime" phptype="datetime" null="false" />
            <field key="deleted" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
            <field key="deletedon" dbtype="datetime" phptype="datetime" null="false" />
            <field key="deletedby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />
            <field key="publishedon" dbtype="datetime" phptype="datetime" null="false" />
            <field key="publishedby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />
            <index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
                    <column key="id" collation="A" null="false" />
            </index>
            <aggregate alias="Creator" class="modUser" local="createdby" foreign="id" cardinality="one" owner="foreign" />
     		<composite alias="LineOptions" class="productLineOptions" local="id" foreign="line_id" cardinality="many" owner="local"/>
    <composite alias="ProductGroup" class="productGroup" local="id" foreign="line_id" cardinality="many" owner="local"/>
    <composite alias="ProductInfo" class="productInfo" local="id" foreign="line_id" cardinality="many" owner="local"/>
    <composite alias="ProductCategories" class="productCategories" local="id" foreign="line_id" cardinality="many" owner="local"/>
            </object>
    
    		<object class="productGroup" table="rli_product_group" extends="xPDOSimpleObject" >
    			<field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
    			<field key="line_id" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0"/>
    			<field key="image_path" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
    			<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
    				<column key="id" collation="A" null="false" />
    			</index>
    			<aggregate alias="ProductLine" class="productLine" local="line_id" foreign="id" cardinality="one" owner="foreign"/>
            </object>
    		<object class="productInfo" table="rli_products" extends="xPDOSimpleObject" >
    			<field key="prod_no" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index"/>
    			<field key="options" dbtype="mediumtext" phptype="string" null="true" default=""/>
    			<field key="qty" dbtype="integer" precision="10" phptype="integer" attributes="unsigned" null="true" default=""/>
    			<field key="grp_id" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0"/>
    <field key="line_id" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0"/>
    			<field key="category" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
    			<field key="colors" dbtype="varchar" precision="255" phptype="string" null="true" default=""/>
    			<field key="createdby" dbtype="int" precision="10" phptype="integer" null="false" default="0" />
    	        <field key="createdon" dbtype="datetime" phptype="datetime" null="false" />
    			<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
    				<column key="id" collation="A" null="false" />
    			</index>
    			<aggregate alias="ProductGroup" class="productGroup" local="grp_id" foreign="id" cardinality="one" owner="foreign"/>
    <aggregate alias="ProductLine" class="productLine" local="line_id" foreign="id" cardinality="one" owner="foreign"/>
    	    </object>
    			<object class="productColors" table="rli_colors" extends="xPDOSimpleObject" >
    				<field key="colorname" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
    				<field key="colorvalue" dbtype="varchar" precision="255" phptype="string" null="false" default="" />
    				<field key="colorgroup" dbtype="integer" precision="1" phptype="integer" attributes="unsigned" null="false" default="0"/>
    				<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
    					<column key="id" collation="A" null="false" />
    				</index>
    		    </object>
    			<object class="productCategories" table="rli_categories" extends="xPDOSimpleObject" >
    				<field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
    				<field key="value" dbtype="varchar" precision="255" phptype="string" null="false" default="" />
    				<field key="line_id" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0"/>
    				<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
    					<column key="id" collation="A" null="false" />
    				</index>
    				<aggregate alias="ProductLine" class="productLine" local="line_id" foreign="id" cardinality="one" owner="foreign"/>
    		    </object>
    		<object class="productOptions" table="rli_opts" extends="xPDOSimpleObject" >
    			<field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default="" index="index" />
    			<field key="value" dbtype="varchar" precision="255" phptype="string" null="false" default="" />
    			<field key="type" dbtype="varchar" precision="255" phptype="string" null="false" default="spec" />
    			<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
    				<column key="id" collation="A" null="false" />
    			</index>
    			<composite alias="ProductInfoOptions" class="productInfoOptions" local="id" foreign="opt_id" cardinality="many" owner="local"/>
    			<composite alias="ProductLineOptions" class="productLineOptions" local="id" foreign="opt_id" cardinality="many" owner="local"/>
    	    </object>
    		<object class="productLineOptions" table="rli_product_line_opts" extends="xPDOSimpleObject" >
    			<field key="line_id" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0"/>
    			<field key="opt_id" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0"/>
    			<index alias="PRIMARY" name="PRIMARY" primary="true" unique="true">
    				<column key="id" collation="A" null="false" />
    			</index>
    			<aggregate alias="ProductLine" class="productLine" local="line_id" foreign="id" cardinality="one" owner="foreign"/>
    			<aggregate alias="ProductOption" class="productColors" local="opt_id" foreign="id" cardinality="one" owner="foreign"/>
    	    </object>	
    </model>

    Main MIGXdb config
    {
      "formtabs":[
        {
          "MIGX_id":3,
          "caption":"Product Lines",
          "print_before_tabs":1,
          "fields":[
            {
              "MIGX_id":1,
              "field":"name",
              "caption":"Product Line Name",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"",
              "validation":"",
              "configs":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            },
            {
              "MIGX_id":2,
              "field":"priority",
              "caption":"List Priority",
              "description":"Set the priority when product lines are listed. Lower numbers are put at the top of the list. In the case of matching priorities, product lines will be sort alphabetically",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"singleSlider",
              "validation":"",
              "configs":{
                "allowBlank":true,
                "allowDecimals":"No",
                "allowNegative":"No",
                "decimalPrecision":"0",
                "decimalSeparator":".",
                "maxValue":100,
                "minValue":"0"
              },
              "restrictive_condition":"",
              "display":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        },
        {
          "MIGX_id":6,
          "caption":"Overview",
          "print_before_tabs":"0",
          "fields":[
            {
              "MIGX_id":1,
              "field":"description",
              "caption":"Overview",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"richtext",
              "validation":"",
              "configs":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        },
        {
          "MIGX_id":4,
          "caption":"Products",
          "print_before_tabs":"0",
          "fields":[
            {
              "MIGX_id":1,
              "field":"",
              "caption":"Products",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"migxdb",
              "validation":"",
              "configs":"Products",
              "restrictive_condition":"",
              "display":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        },
        {
          "MIGX_id":5,
          "caption":"Product Groups",
          "print_before_tabs":"0",
          "fields":[
            {
              "MIGX_id":1,
              "field":"",
              "caption":"Groups",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"migxdb",
              "validation":"",
              "configs":"Product Groups",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        },
        {
          "MIGX_id":8,
          "caption":"Sub-Categories",
          "print_before_tabs":"0",
          "fields":[
            {
              "MIGX_id":1,
              "field":"",
              "caption":"Group Categories",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"migxdb",
              "validation":"",
              "configs":"Product Category",
              "restrictive_condition":"",
              "display":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        },
        {
          "MIGX_id":7,
          "caption":"Colors",
          "print_before_tabs":"0",
          "fields":[
            {
              "MIGX_id":1,
              "field":"",
              "caption":"Colors",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"migxdb",
              "validation":"",
              "configs":"Product Colors",
              "restrictive_condition":"",
              "display":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        }
      ],
      "contextmenus":"update||remove",
      "actionbuttons":"addItem",
      "columnbuttons":"",
      "filters":"[]",
      "extended":{
        "migx_add":"Add Product Line",
        "formcaption":"",
        "update_win_title":"",
        "win_id":"productline",
        "maxRecords":"",
        "addNewItemAt":"bottom",
        "multiple_formtabs":"",
        "actionbuttonsperrow":4,
        "winbuttonslist":"",
        "extrahandlers":"",
        "filtersperrow":4,
        "packageName":"rhythmcatalog",
        "classname":"productLine",
        "task":"",
        "getlistsort":"priority",
        "getlistsortdir":"",
        "use_custom_prefix":"0",
        "prefix":"",
        "grid":"",
        "gridload_mode":1,
        "check_resid":1,
        "check_resid_TV":"",
        "join_alias":"",
        "has_jointable":"yes",
        "getlistwhere":"",
        "joins":"",
        "cmpmaincaption":"RhythmLink Catalog Manager",
        "cmptabcaption":"Product Lines",
        "cmptabdescription":"",
        "cmptabcontroller":"",
        "winbuttons":"",
        "onsubmitsuccess":"",
        "submitparams":""
      },
      "columns":[
        {
          "MIGX_id":4,
          "header":"Pri",
          "dataIndex":"priority",
          "width":"",
          "sortable":true,
          "show_in_grid":1,
          "renderer":"",
          "clickaction":"",
          "selectorconfig":"",
          "renderchunktpl":"",
          "renderoptions":"[]"
        },
        {
          "MIGX_id":1,
          "header":"id",
          "dataIndex":"id",
          "width":"",
          "sortable":"false",
          "show_in_grid":"0",
          "renderer":"",
          "clickaction":"",
          "selectorconfig":"",
          "renderchunktpl":"",
          "renderoptions":"[]"
        },
        {
          "MIGX_id":2,
          "header":"Product Line Name",
          "dataIndex":"name",
          "width":"",
          "sortable":true,
          "show_in_grid":1,
          "renderer":"",
          "clickaction":"",
          "selectorconfig":"",
          "renderchunktpl":"",
          "renderoptions":"[]"
        },
        {
          "MIGX_id":3,
          "header":"",
          "dataIndex":"deleted",
          "width":"",
          "sortable":"false",
          "show_in_grid":"0",
          "renderer":"",
          "clickaction":"",
          "selectorconfig":"",
          "renderchunktpl":"",
          "renderoptions":"[]"
        }
      ]
    }

    One of the nested MIGXdb configs (there are 4 separate nested configs)
    {
      "formtabs":[
        {
          "MIGX_id":1,
          "caption":"Color Build",
          "print_before_tabs":"0",
          "fields":[
            {
              "MIGX_id":1,
              "field":"colorname",
              "caption":"Color Name",
              "description":"",
              "description_is_code":"0",
              "inputTV":"",
              "inputTVtype":"",
              "validation":"",
              "configs":"",
              "restrictive_condition":"",
              "display":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            },
            {
              "MIGX_id":5,
              "field":"colorvalue",
              "caption":"Color Value",
              "description":"",
              "description_is_code":"0",
              "inputTV":"colorpicker",
              "inputTVtype":"",
              "validation":"",
              "configs":"",
              "restrictive_condition":"",
              "display":"",
              "sourceFrom":"config",
              "sources":"[]",
              "inputOptionValues":"",
              "default":""
            }
          ]
        }
      ],
      "contextmenus":"update||remove",
      "actionbuttons":"addItem",
      "columnbuttons":"",
      "filters":"[]",
      "extended":{
        "migx_add":"Add Color",
        "formcaption":"",
        "update_win_title":"",
        "win_id":"color",
        "maxRecords":"",
        "addNewItemAt":"bottom",
        "multiple_formtabs":"",
        "actionbuttonsperrow":4,
        "winbuttonslist":"",
        "extrahandlers":"",
        "filtersperrow":4,
        "packageName":"rhythmcatalog",
        "classname":"productColors",
        "task":"colors",
        "getlistsort":"",
        "getlistsortdir":"",
        "use_custom_prefix":"0",
        "prefix":"",
        "grid":"",
        "gridload_mode":1,
        "check_resid":1,
        "check_resid_TV":"",
        "join_alias":"",
        "has_jointable":"yes",
        "getlistwhere":"",
        "joins":"",
        "cmpmaincaption":"",
        "cmptabcaption":"Manage Colors",
        "cmptabdescription":"Manage the colors available to all products",
        "cmptabcontroller":"",
        "winbuttons":"",
        "onsubmitsuccess":"",
        "submitparams":""
      },
      "columns":[
        {
          "MIGX_id":1,
          "header":"Name",
          "dataIndex":"colorname",
          "width":"",
          "sortable":"false",
          "show_in_grid":1,
          "renderer":"",
          "clickaction":"",
          "selectorconfig":"",
          "renderchunktpl":"",
          "renderoptions":"[]"
        },
        {
          "MIGX_id":3,
          "header":"",
          "dataIndex":"id",
          "width":"",
          "sortable":"false",
          "show_in_grid":"0",
          "renderer":"",
          "clickaction":"",
          "selectorconfig":"",
          "renderchunktpl":"",
          "renderoptions":"[]"
        }
      ]
    }


    Using MODX Revo 2.2.13 and MIGX 2.6.8

    This question has been answered by Bruno17. See the first response.

    • discuss.answer
      • 4172
      • 5,888 Posts
      does it go away, when you set the MIGXdb - setting
      'Has Extra Connection Table' to 'no' ?

      It is this setting in the config-json:

      "has_jointable":"yes",
        -------------------------------

        you can buy me a beer, if you like MIGX

        http://webcmsolutions.de/migx.html

        Thanks!
        • 8274 ☆ A M B ☆
        • 222 Posts
        But if I am joining the migxdb config to another table (like getting a product line id to drop into the line_id field of the product record) wouldn't changing that setting to no break the connection to the other table?
          • 4172
          • 5,888 Posts
          can't see how you do connect the child-table(s) with the main-table in the config.

          do you have custom-update-processors?
          what's the code of them?
            -------------------------------

            you can buy me a beer, if you like MIGX

            http://webcmsolutions.de/migx.html

            Thanks!