Hi guys,

I'm trying to check if a record already exists (based on a filename),
if it does it should fail validation.

I'm using CakePHP 1.2 and had a look at 'userDefined' which looks like
it should call a custom function.
This function I'm talking about: 
http://api.cakephp.org/1.2/validation_8php-source.html#l00633

Here's what I've tried:

function uniqueFilename()
{
        return false;
}

var $validate = array(
        'name' => array(
                        'rule' => array(
                                'userDefined' => array('Asset', 
'uniqueFilename', array('param1',
'param2'))
                        ),
                        'message' => 'Filename already exists!'
                )
        );


Above code gives me a couple of errors:

Notice (8): Undefined offset:  0 [CORE/cake/libs/model/model.php, line
1683]

Context | Code

$this   =       Asset object
$data   =       array("parent_id" => "574", "name" => "Lloyd Banks ft. 50 Cent
- Hands Up (Dirty).mp3", "id" => "576")
$Validation     =       Validation object
$validator      =       array("allowEmpty" => true, "message" => "Angiv venligst
en titel for siden", "rule" => array, "on" => null)
$fieldName      =       "name"


                    $this->invalidate($fieldName,
$validator['message']);


                } elseif (isset($data[$fieldName])) {


                    if (is_array($validator['rule'])) {


                        $rule = $validator['rule'][0];


                        unset($validator['rule'][0]);

Model::invalidFields() - CORE/cake/libs/model/model.php, line 1683
Model::validates() - CORE/cake/libs/model/model.php, line 1633
Model::save() - CORE/cake/libs/model/model.php, line 993
AssetsController::admin_edit() - APP/controllers/
assets_controller.php, line 123
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 348
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 330
[main] - ROOT//www/index.php, line 84

Notice (8): Undefined property:  SessionComponent::$themeWeb [CORE/
cake/libs/controller/components/session.php, line 195]

Context | Code

$flashMessage   =       "Asset updated"
$layout =       "flash_success"
$params =       array()
$key    =       "flash"
$ctrl   =       null
$view   =       View object


                $view->params        = $this->params;


                $view->action        = $this->action;


                $view->data            = $this->data;


                $view->themeWeb     = $this->themeWeb;


                $view->plugin        = $this->plugin;

SessionComponent::setFlash() - CORE/cake/libs/controller/components/
session.php, line 195
AssetsController::admin_edit() - APP/controllers/
assets_controller.php, line 125
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 348
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 330
[main] - ROOT//www/index.php, line 84

Warning (2): Cannot modify header information - headers already sent
by (output started at /web/lib/1.2.x.x_04.03.2007/cake/basics.php:869)
[CORE/cake/libs/controller/controller.php, line 498]



Any idea?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to