[
'label' => 'Дата начала подписки',
'value' => function ($model, $key, $value) {
return \kartik\date\DatePicker::widget([
'name' => 'date_subscription',
'model' => $model,
'value' => $model->date_subscription,
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'format' => 'yyyy-mm-dd',
'autoclose' => true,
],
]);
},
'format' => 'raw',
],
$(".krajee-datepicker.form-control").blur(function() {
jQuery.ajax({
url: '/admin/clients/date-subscription',
type: 'post',
contentType: 'application/x-www-form-urlencoded',
async: true,
dataType: 'html',
data: {
data: this.value
},
success: function (data) {
alert(data);
},
error: function () {
alert("Error");
location.reload();
}
});
});
error: function(jqxhr, status, errorMsg) {
alert("Статус: " + status + " Ошибка: " + errorMsg);
}
url: '/admin/clients/date-subscription'
public function actionDateSubscription()
{
$jd = Yii::$app->request->post();
$jd = (object)$jd;
Yii::$app->user->setIdentity(\common\models\User::findOne(['id' => $jd->data]));
$userSettings = UserSettings::findOne(["user_id" => $jd->data]);
if ($userSettings->save()){
echo "date_subscription: ".$userSettings->user_id.$userSettings->date_subscription;
}
}
Yii::$app->user->setIdentity(\common\models\User::findOne(['id' => $jd->data]));
[
'label' => 'Дата начала подписки',
'value' => function ($model, $key, $value) {
return \kartik\date\DatePicker::widget([
'name' => 'date_subscription',
'model' => $model,
'value' => date('d-m-Y',$model->created_at),
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'format' => 'yyyy-mm-dd',
'autoclose' => true,
],
]);
},
'contentOptions' => [
'onchange' => '
var Id = $(this).parent().attr("data-key");
var uDate = $(this).children("input").val();
console.log(Id + " - " + uDate);
$.ajax({
url: "'. Url::to('user/default/ajax-request') .'",
type: "POST",
data:{id: Id, date: uDate},
success: function(data){
console.log(data)
}
})
'
],
'format' => 'raw',
],
public function actionAjaxRequest()
{
if(Yii::$app->request->isAjax){
$newDate = Yii::$app->request->post('date');
$uId = Yii::$app->request->post('id');
if(($model = Users::findOne(['id' => $uId])) != null){
$model->created_at = strtotime($newDate);
if(!$model->update(false,['created_at'])){
return 'Данные не обновились.';
}
else{
return 'Данные успешно обновились.';
}
}
else{
return 'Пользователь не найден.';
}
}
return false;
}
[
'label' => 'Дата начала подписки',
'value' => function ($model, $key, $value) {
return \kartik\date\DatePicker::widget([
'name' => 'date_subscription',
'model' => $model,
'value' => date('Y-m-d',$model->date_subscription),
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'format' => 'yyyy-mm-dd',
'autoclose' => true,
],
]);
},
'contentOptions' => [
'onchange' => '
var Id = $(this).parent().attr("data-key");
var value = $(this).children("input").val();
$.ajax({
url: "'. Url::to('/admin/clients/ajax-request') .'",
type: "POST",
data:{id: Id, date: value},
success: function(data){
console.log(data)
}
})
'
],
'format' => 'raw',
],
public function actionAjaxRequest()
{
if(Yii::$app->request->isAjax){
$value = Yii::$app->request->post('date');
$uId = Yii::$app->request->post('id');
if(($model = UserSettings::findOne(['id' => $uId]))){
$model->date_subscription = strtotime($value);
if(!$model->update(false,['date_subscription'])){
return 'Данные не обновились.';
}
else{
return 'Данные успешно обновились.';
}
}
else{
return 'Пользователь не найден.';
}
}
return false;
}
var Id = $(this).parent().attr("data-key");
у Вас id Users, но никак не UsersSettings.$model = UserSettings::findOne(['user_id' => $uId]
[
'label' => 'Дата начала подписки',
'value' => function ($model, $key, $value) {
return \kartik\date\DatePicker::widget([
'name' => 'date_subscription',
'model' => $model,
'value' => date('d-m-Y',$model->date_subscription),
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'format' => 'yyyy-mm-dd',
'autoclose' => true,
],
]);
},
'contentOptions' => [
'onchange' => '
var Id = $(this).parent().attr("data-key");
var uDate = $(this).children("input").val();
console.log(Id + " - " + uDate);
$.ajax({
url: "'. Url::to('yii/users/ajax-request') .'",
type: "POST",
data:{id: Id, date: uDate},
success: function(data){
console.log(data)
}
})
'
],
'format' => 'raw',
],
public function actionAjaxRequest()
{
if(Yii::$app->request->isAjax){
$newDate = Yii::$app->request->post('date');
$uId = Yii::$app->request->post('id');
if(($model = Users::findOne(['id' => $uId])) != null){
$model->date_subscription = strtotime($newDate);
if(!$model->update(false,['date_subscription'])){
return 'Данные не обновились.';
}
else{
return 'Данные успешно обновились.';
}
}
else{
return 'Пользователь не найден.';
}
}
return false;
}
url: "'. Url::to('yii/users/ajax-request') .'"
url: "'. Url::to('/admin/clients/ajax-request') .'",
url: "'. Url::to('ajax-request') .'"
url: "'. Url::to('/users/ajax-request') .'"
[
'label' => 'Дата начала подписки',
'value' => function ($model, $key, $value) {
return \kartik\date\DatePicker::widget([
'name' => 'date_subscription',
'model' => $model,
'value' => date('d-m-Y',$model->date_subscription),
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'format' => 'yyyy-mm-dd',
'autoclose' => true,
],
]);
},
'contentOptions' => [
'onchange' => '
var Id = $(this).parent().attr("data-key");
var uDate = $(this).children("input").val();
console.log(Id + " - " + uDate);
$.ajax({
url: "'. Url::to('/admin/clients/ajax-request') .'",
type: "POST",
data:{id: Id, date: uDate},
success: function(data){
console.log(data)
}
})
'
],
'format' => 'raw',
],
public function actionAjaxRequest()
{
if(Yii::$app->request->isAjax){
$newDate = Yii::$app->request->post('date');
$uId = Yii::$app->request->post('id');
if(($model = UserSettings::findOne(['user_id' => $uId])) != null){
$model->date_subscription = strtotime($newDate);
if(!$model->update(false,['date_subscription'])){
return 'Данные не обновились.';
}
else{
return 'Данные успешно обновились.';
}
}
else{
return 'Пользователь не найден.';
}
}
return false;
}
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['date_subscription'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['date_subscription'],
],
// если вместо метки времени UNIX используется datetime:
// 'value' => new Expression('NOW()'),
],
];
}
[['date_subscription'], 'date', 'format' => 'php:Y-m-d']
date('Y-m-d', strtotime($model->date_subscription));
strtotime($model->date_subscription)
возвращает дату в timestamp, то что требуется для date().