<?xml version="1.0" encoding="UTF-8"?>
<model package="example" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1">
<object class="artworks" table="artworks" extends="xPDOSimpleObject">
<field key="artworkname" dbtype="varchar" precision="255" phptype="string" null="true" default="" />
<field key="galleryname" dbtype="varchar" precision="255" phptype="string" null="true" default="" />
<aggregate alias="CreatedBy" class="modUser" local="createdby" foreign="id" cardinality="one" owner="foreign" />
</object>
<object class="galleries" table="galleries" extends="xPDOSimpleObject">
<field key="galleryname" dbtype="varchar" precision="255" phptype="string" null="true" default="" />
<aggregate alias="CreatedBy" class="modUser" local="createdby" foreign="id" cardinality="one" owner="foreign" />
</object>
</model>
public function beforeSet() {
$galleryname = $this->getProperty('galleryname');
$total = $this->modx->getCount('artworks',array('galleryname' => $galleryname));
if ($total > 0) {
return $this->failure($this->modx->lexicon('refuse_delete_items_exist'));
}
}
This question has been answered by BobRay. See the first response.
public function beforeSet() {
$galleryname = $this->getProperty('galleryname');
$c = newQuery('artworks');
$c->where(array('galleryname' => $galleryname));
$c->prepare();
$total = $this->modx->getCount('artworks', $c);
if ($total > 0) {
return $this->failure($this->modx->lexicon('refuse_delete_items_exist'));
}
}

{"success":false,"message":{"success":false,"message":"refuse_delete_items_exist","total":0,"errors":[],"object":[]},"total":0,"data":[],"object":[]}
,removeGallery: function() {
MODx.msg.confirm({
title: _('mycomponent.gallery_remove')
,text: _('mycomponent.gallery_remove_confirm')
,url: this.config.url
,galleryname: this.config.galleryname
,params: {
action: 'mgr/gallery/remove'
,id: this.menu.record.id
,galleryname: this.menu.record.galleryname
,dir: this.menu.record.url
}
,listeners: {
'success': {fn:this.refresh,scope:this}
}
});
},