Hello,
after upgrading to 1.8.0 this code does not work anymore.
error: An SQL error occurred: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'CMDB_Asset.id' in 'field list'
<?php
require_once '../../../../configs/main.php';
require_once '../../../../libs/datatables-editor/lib/DataTables.php';
use DataTables\Editor;
use DataTables\Editor\Field;
use DataTables\Editor\Mjoin;
use DataTables\Editor\Options;
use DataTables\Editor\Upload;
use DataTables\Editor\Validate;
if ($_SESSION['login']['login_ok'] == 1) {
Editor::inst($dbIntranet, 'CMDB_Asset')
->debug(false)
->fields(
Field::inst('CMDB_Asset.id')->set(false),
Field::inst('CMDB_Asset_Dms.id')->set(false),
Field::inst('CMDB_Asset_Dms.Name'),
Field::inst('CMDB_Asset_Dms.Note'),
Field::inst('CMDB_Status.Name'),
Field::inst('XRM_Company.id'),
Field::inst('V_CMDB_Asset.ci')->set(false),
Field::inst('CMDB_Asset_Dms.DateUpdated')
->getFormatter('Format::datetime', array(
//'from' => 'Y-m-d H:i:s',
'from' => 'Y-m-d H:i:s',
'to' => 'd.m.Y',
)),
Field::inst('CMDB_Asset_Dms.ChangedBy')
->setValue($_SESSION['login']['userid'])
->validator('Validate::notEmpty'),
Field::inst('CMDB_V_ProductCatalogSub.NameShort'),
Field::inst('CMDB_V_ProductCatalogSub.Name'),
Field::inst('CMDB_Asset_Dms.cmdb_productcatalogsub_id')
->options(Options::inst()
->table('CMDB_V_ProductCatalogSub')
->value('id')
->label('Name')
)
->validator('Validate::dbValues')
->validator('Validate::notEmpty'),
Field::inst('CMDB_Asset.cmdb_status_id')
->options(Options::inst()
->table('CMDB_Status')
->value('id')
->label('Name')
)
->validator('Validate::dbValues')
->validator('Validate::notEmpty'),
Field::inst('XRM_Company.Name'),
Field::inst('CMDB_Asset.xrm_company_id')
->options(Options::inst()
->table('XRM_Company')
->value('id')
->label('Name')
)
->validator('Validate::dbValues')
->validator('Validate::notEmpty'),
Field::inst('CMDB_Asset_Type.Name'),
Field::inst('CMDB_Asset.cmdb_asset_type_id')
->options(Options::inst()
->table('CMDB_Asset_Type')
->value('id')
->label('Name')
)
->validator('Validate::dbValues'),
Field::inst('CMDB_Asset_DmsCategory.Name'),
Field::inst('CMDB_Asset_Dms.cmdb_asset_dmscategory_id')
->options(Options::inst()
->table('CMDB_Asset_DmsCategory')
->value('id')
->label('Name')
)
->validator('Validate::dbValues')
->validator('Validate::notEmpty')
)
->leftJoin('CMDB_Asset_Dms', 'CMDB_Asset_Dms.cmdb_asset_id', '=', 'CMDB_Asset.id')
->leftJoin('XRM_Company', 'XRM_Company.id', '=', 'CMDB_Asset.xrm_company_id')
->leftJoin('CMDB_Status', 'CMDB_Status.id', '=', 'CMDB_Asset.cmdb_status_id')
->leftJoin('CMDB_Asset_Type', 'CMDB_Asset_Type.id', '=', 'CMDB_Asset.cmdb_asset_type_id')
->leftJoin('CMDB_V_ProductCatalogSub', 'CMDB_V_ProductCatalogSub.id', '=', 'CMDB_Asset_Dms.cmdb_productcatalogsub_id')
->leftJoin('CMDB_Asset_DmsCategory', 'CMDB_Asset_DmsCategory.id', '=', 'CMDB_Asset_Dms.cmdb_asset_dmscategory_id')
->leftJoin('V_CMDB_Asset', 'V_CMDB_Asset.id', '=', 'CMDB_Asset.id')
->join(
Mjoin::inst('CMDB_Asset_Dms_File') //many-to-many
->link('CMDB_Asset.id', 'CMDB_Asset_Dms_Link_File.cmdb_asset_id')
->link('CMDB_Asset_Dms_File.id', 'CMDB_Asset_Dms_Link_File.cmdb_asset_dms_file_id')
->fields(
Field::inst('id')
->upload(Upload::inst($_SERVER['DOCUMENT_ROOT'] . '/cxintranet_cms/dms/__ID___' . mt_rand() . '.__EXTN__')
->db('CMDB_Asset_Dms_File', 'id', array(
'DateCreated' => Upload::DB_READ_ONLY,
'Filename' => Upload::DB_FILE_NAME,
'Filesize' => Upload::DB_FILE_SIZE,
'WebPath' => Upload::DB_WEB_PATH,
'SystemPath' => Upload::DB_SYSTEM_PATH,
))
->validator(Validate::fileSize(10485760, 'Max. Dateigröße: 10MB'))
->validator(Validate::fileExtensions(array('pdf', 'txt', 'lic', 'doc', 'docx', 'xls', 'xlsx', 'html'), "Erlaubte Dateitypen: pdf, txt, lic, doc, docx, xls, xlsx, html"))
)
)
)
->where('CMDB_Asset_Type.id', 31)
->process($_POST)
->json();
}
$(function() {
//editor
var editor;
editor = new $.fn.dataTable.Editor({
ajax: "ajax/cmdb/assets/dms/processData.php",
table: "#table_[@ID UID]",
fields: [{
label: "ID:",
name: 'V_CMDB_Asset.ci',
type: 'readonly'
}, {
label: "Firma:",
name: "CMDB_Asset.xrm_company_id",
opts: {
multiple: false,
placeholder: 'Firma auswählen'
},
"type": "select2"
}, {
label: "Kategorie:",
name: "CMDB_Asset_Dms.cmdb_asset_dmscategory_id",
opts: {
multiple: false,
placeholder: 'Kategorie auswählen'
},
"type": "select2"
}, {
label: "Notiz:",
name: 'CMDB_Asset_Dms.Note',
"type": "ckeditorClassic"
}, {
label: "Dateien:",
name: "CMDB_Asset_Dms_File[].id",
type: "uploadMany",
display: function(fileId, counter) {
return '<a href="' + editor.file('CMDB_Asset_Dms_File', fileId).WebPath + '" target="_blank">' + moment(editor.file('CMDB_Asset_Dms_File', fileId).DateCreated).format('DD.MM.YYYY') + ' | ' + editor.file('CMDB_Asset_Dms_File', fileId).Filename + '</a>';
},
noFileText: 'keine Dateien'
}, {
label: "Status:",
name: "CMDB_Asset.cmdb_status_id",
opts: {
multiple: false,
placeholder: 'Status auswählen'
},
type: "select2"
}, {
label: "(Optional) Produkt:",
name: "CMDB_Asset_Dms.cmdb_productcatalogsub_id",
opts: {
multiple: false,
placeholder: 'Produkt auswählen'
},
type: "select2",
def: function() {
return 1
},
}, {
label: "Typ:",
name: "CMDB_Asset.cmdb_asset_type_id",
type: "select"
},
]
});
//Sortieren
$.fn.dataTable.moment('DD.MM.YYYY');
//datatable
var table = $('#table_[@ID UID]').DataTable({
"lengthMenu": [
[10, 25, 50, 75, 100, 150, 200, 300, -1],
[10, 25, 50, 75, 100, 150, 200, 300, "All"]
],
"columnDefs": [{
responsivePriority: 2,
targets: 0
}],
"order": [
[1, 'desc']
],
"scrollX": false,
"searchPane": true,
fixedHeader: {
headerOffset: 43
},
responsive: true,
ajax: 'ajax/cmdb/assets/dms/processData.php',
dom: 'Bflrtip',
columns: [{
data: null
}, {
data: 'CMDB_Asset_Dms.DateUpdated'
}, {
data: 'V_CMDB_Asset.ci'
}, {
data: 'XRM_Company.Name',
editField: 'CMDB_Asset.xrm_company_id'
}, {
data: 'CMDB_Asset_Dms.Name'
}, {
data: 'CMDB_Status.Name',
editField: 'CMDB_Asset.cmdb_status_id'
}, {
data: null,
className: "center",
defaultContent: '<a href="" class="editor_edit">Edit</a>'
}, ],
select: {
style: 'os',
//selector: 'td:first-child'
},
buttons: [{
extend: 'create',
editor: editor,
text: 'neu'
}, {
extend: 'edit',
editor: editor,
text: 'anzeigen/bearbeiten',
formButtons: [{
label: 'abbrechen',
fn: function() {
this.close();
}
}, 'speichern'],
formOptions: [{
focus: null,
}],
},
]
});
});