Я использую Yii в качестве php-сервера для мобильного приложения с использованием REST API. Я вижу, что объект данных xhr на клиенте содержит правильные значения json-encoded. У меня есть «безопасный» атрибут, установленный в моем классе модели следующим образом:Yii - вставка нулевых значений в db, набор атрибутов 'safe'
array('user_id, last_visit, first_visit, blah, 'safe', 'on'=>'search')
И вставка происходит по назначению. Единственная проблема заключается в том, что значения null
вставляются для всех полей, за исключением ключевого слова auto-increment primay. Я следовал этому полезному блогу почти дословно, Create a REST API, и он работает довольно просто и хорошо. Я просто не знаю, как отлаживать вставки нулевого значения.
я огонь этот метод на стороне клиента
upload.open("POST", "http://localhost:8888/dashboard/index.php/api/tracker");
затем отправить его
upload.send(JSON.stringify(_xhrData));
который затем вызывает этот метод на сервере:
public function actionCreate()
{
switch ($_GET['model']) {
// Get an instance of the respective model
case 'tracker':
$model = new Tracker;
break;
default:
$this->_sendResponse(501,
sprintf('Mode <b>create</b> is not implemented for model <b>%s</b>',
$_GET['model']));
Yii::app()->end();
}
// Try to assign POST values to attributes
foreach ($_POST as $var => $value) {
// Does the model have this attribute? If not raise an error
if ($model->hasAttribute($var))
$model->$var = $value;
else
$this->_sendResponse(500,
sprintf('Parameter <b>%s</b> is not allowed for model <b>%s</b>', $var,
$_GET['model']));
}
// Try to save the model
if ($model->save())
$this->_sendResponse(200, CJSON::encode($model));
else {
// Errors occurred
$msg = "<h1>Error</h1>";
$msg .= sprintf("Couldn't create model <b>%s</b>", $_GET['model']);
$msg .= "<ul>";
foreach ($model->errors as $attribute => $attr_errors) {
$msg .= "<li>Attribute: $attribute</li>";
$msg .= "<ul>";
foreach ($attr_errors as $attr_error)
$msg .= "<li>$attr_error</li>";
$msg .= "</ul>";
}
$msg .= "</ul>";
$this->_sendResponse(500, $msg);
}
}
I не получайте ошибок, просто следующее сообщение о состоянии на клиенте
[INFO] {"user_id":"19","last_visit":null,"first_visit":null,"locale":null,"this_visit":null,"latitude":null,"longitude":null,"device_maker":null,"device_model":null,"os_platform":null,"os_version":null,"opted_out":null,"opted_in":null,"modified":null,"model_type":null}
я бы очень признателен за любую помощь по отладке этого. Благодарю.
удалить ' "на"=> "Поиск"' –
@AlirezaFallah я удалил его, но это не имело никакого эффекта. Тот же результат, что и раньше. –
Не могли бы вы рассказать мне, где и как вы передаете свои данные через REST? –