Hello!
I am trying to define a unique field in a Contentbox app without success. (Contentbox 5.3 - Coldbox 6.8)
In my models app, i have got the following snippet
component persistent="true" table="cb_paravolo"{
property name="paravoloID" fieldtype="id" column="paravoloID" generator="identity" setter="false";
property name="issuer" column="paravolo_issuer" notnull="true" length="400";
property name="amount" column="paravolo_amount" ormtype="float" notnull="true" length="15";
property name="code" column="paravolo_code" unique="true" notnull="true" length="50";
// auto-incrementing key type by default
this.pk="paravoloID";
// Constructor
function init(){
return this;
}
/**
* is loaded?
*/
boolean function isLoaded(){
return len( getFieldID() );
}
}
and in my handler i have got the following snippet where the validation takes place
var result = validateModel(
target=rc,
constraints = {
"issuer" = { required=true, size="1..200",requiredMessage="#getResource("require_issuer")#",sizeMessage="#getResource("size_issuer")#"},
"amount" = { required=true, size="1..10",type="numeric",requiredMessage="#getResource("require_amount")#",sizeMessage="#getResource("size_amount")#",typeMessage="#getResource("type_amount")#"},
"code" = { required=true, size="1..20",unique=true,requiredMessage="#getResource("require_code")#",sizeMessage="#getResource("size_code")#",uniqueMessage="#getResource("unique_code")#" }
});
When i try to enter a duplicate or non - duplicate value i always take the following screen
Any idea?
Regards
Yes, the unique
constraint is not a boolean but a struct
Thanks a lot for your reply!
I updated my model file
component persistent="true" table="cb_paravolo"{
property name="paravoloID" fieldtype="id" column="paravoloID" generator="identity" setter="false";
property name="issuer" column="paravolo_issuer" notnull="true" length="400";
property name="amount" column="paravolo_amount" ormtype="float" notnull="true" length="15";
property name="code" column="paravolo_code" unique="true" notnull="true" length="50";
// auto-incrementing key type by default
this.pk="paravoloID";
also my handler accordingly and the constraint works now without a problem
function add(event,rc,prc){
var result = validateModel(
target=rc,
constraints = {
"issuer" = { required=true, size="1..200",requiredMessage="#getResource("require_issuer")#",sizeMessage="#getResource("size_issuer")#"},
"amount" = { required=true, size="1..10",type="numeric",requiredMessage="#getResource("require_amount")#",sizeMessage="#getResource("size_amount")#",typeMessage="#getResource("type_amount")#"},
"code" = { required=true, size="1..20",unique={table:"cb_paravolo",column:"paravolo_code"},requiredMessage="#getResource("require_code")#",sizeMessage="#getResource("size_code")#",uniqueMessage="#getResource("unique_code")#" }
});
if (result.hasErrors()){
cbMessagebox.error(result.getAllErrors());
flash.persistRC(include="issuer,amount,code");
relocate(event="cbadmin.module.cbParavolo.home.new");
return;
}
try {
var paravolo = ParavoloService.new("Paravolo",{
"issuer" : Trim(rc.issuer),
"amount": Trim(rc.amount),
"code" : Trim(rc.code)
});
ParavoloService.save(paravolo);
cbMessagebox.success("#getResource("paravolo_created")#");
} catch(database e){
cbMessagebox.error(e.message);
}
relocate('cbadmin.module.cbParavolo.home');
}
when i try to save-update and perhaps delete a new record i get the following error
component extends="modules.contentbox.modules.contentbox-deps.modules.cborm.models.BaseORMService" singleton{
public ParavoloService function init(){
// init super class
super.init(entityName="Paravolo");
return this;
}
}
Regards a lot!
Hello again!
I have managed to fix it regarding duplicate value during insert operation
regarding duplicate value during update operation i get the following
Regards again