2016-01-04 3 views
-3

Если условие истинно, оно должно отображать сообщение об ошибке «уже выходит» или сообщение «успешно» должно отображаться.как дать подтверждение CAKEPHP?

Можно ли добавить подтверждение, как это в части модели:

$name = $_POST["name"]; 
$validation_sql = "SELECT COUNT(*) > 0 FROM college WHERE status='2' AND name='$name'"; 
+2

Пожалуйста, прочитайте раздел руководства по [одобрению] (Http: //book.cakephp. орг/2,0/о/модели/данные validation.html). Правило, которое вам нужно, - [isUnique] (http://book.cakephp.org/2.0/en/models/data-validation.html#Model::Validation::isUnique). –

+1

Как вы можете использовать три версии CakePHP одновременно? Тэги свой материал правильно! – burzum

ответ

0

Вы можете использовать hasAny() в качестве решения:

$conditions = array(
    'status'=>'2', 
    'name'=>$name 
); 
if ($this->XXXXXXX->hasAny($conditions)){ 
    //do something 
} 

hasAny вернется true, если найден еще false ,

ПРИМЕЧАНИЕ: hasAny не доступен в версии 3.х

0

Вы можете добавить проверку сервера в модели, как:

public $validate = array(
    'name' => array(
     'rule' => array('isUnique', array('name'), false), 
     'message' => 'This name has already been used.' 
    ) 
); 
0

Не рекомендуется использовать $ _POST в CakePHP, скорее используйте объект Request в контроллере для доступа к данным, указанным в запросе POST:

$this->request->data['College']['name']; 

Эта информация затем может быть передана модели, на которой она подтверждена.

Если почтовый запрос был создан помощником формы CakePHP, вам не нужно обращаться к нему - вы можете напрямую передать данные методу сохранения экземпляра модели (см. CakePHP Handbook - Saving your data).

if ($this->College->save($this->request->data)) { 
// handle the success (Normally success flash) 
} 
debug($this->College->validationErrors); //Normally error flash - if FormHelper is used the error messages are automatically shown beside the input elements 

В валидация могут быть добавлены с помощью Bake Console или вручную путем добавления validation rules к коду колледжа Модель:

public $validate = array(
    'name' => array(
     'rule' => 'isUnique', 
     'message' => 'This username has already been taken.' 
    ) 
); 
Смежные вопросы