Ich benutze Phil Sturgeon REST-Server, CI3 und POSTMAN zum Debuggen. Ich sende ein PUT mit unten stehenden Informationen, ich erhalte jedoch nicht die erwarteten Fehlermeldungen.Phil Sturgeon REST-Server, Codeigniter3, Fehlermeldungen keine Rückkehr auf PUT
Hier ist meine form_validation.php:
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
$config = array(
'student_put' => array(
array('field' => 'email_address', 'label' => 'email_address', 'rules' => 'trim|required|valid_email'),
array('field' => 'password', 'label' => 'password', 'rules' => 'trim|required|min_length[8]|max_length[16]'),
array('field' => 'first_name', 'label' => 'first_name', 'rules' => 'trim|required|max_length[50]'),
array('field' => 'last_name', 'label' => 'last_name', 'rules' => 'trim|required|max_length[50]'),
array('field' => 'phone_number', 'label' => 'phone_number', 'rules' => 'trim|required|alpha_dash'),
)
);
?>
Hier ist meine Methode in meinem Controller api.php:
function student_put(){
$this->form_validation->set_data($this->put());
// these are the rules set in config/form_validation.php
if ($this->form_validation->run('student_put') != FALSE) {
die('good data');
} else {
$this->response(
array(
'status'=> 'failure',
'message'=> $this->form_validation->get_errors_as_array(),
),
REST_Controller::HTTP_BAD_REQUEST
);
}
}
Das in meinen Bibliotheken als MY_Form_validation.php Ordner ist:
<?php
class MY_Form_validation extends CI_Form_validation {
function __construct($rules = array()) {
parent::__construct($rules);
$this->ci =& get_instance();
}
public function get_errors_as_array() {
return $this->_error_array;
}
public function get_config_rules() {
return $this->_config_rules;
}
public function get_field_names($form) {
$field_names = array();
$rules = $this->get_config_rules();
$rules = $rules[$form];
foreach ($rules as $index=> $info) {
$field_names[] = $info['field'];
}
return $field_names;
}
}
Wenn ich folgende in POSTMAN:
X-API-KEY 123456
first_name test
email_address abc
Dies ist das Ergebnis, das ich bekommen:
{
"status": "failure",
"message": []
}
Aber ich sollte die Validierungsfehler bekommen.
Als Debug-Schritte, ich habe bestätigt: - keine Auth Fehler - die form_validation.php gelesen wird - wenn ich ändern:
'message'=> $this->form_validation->get_errors_as_array(),
zu
'message'=> 'test',
der Postmann kehrt :
{
"status": "failure",
"message": "test"
}
Beliebig Hilfe sehr geschätzt.
was ist die Einstellung in application/config/rest.php? – keronconk
Auf welche Einstellung beziehen Sie sich besonders? Ich denke, ich sollte es vermeiden, die Enter-Datei als sehr lange zu veröffentlichen. – user3264461
Was ist die Einstellung von $ config ['rest_auth'] und $ config ['rest_enable_keys']? – keronconk