[
'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;
}
['username', 'match', 'pattern' => '/^[^а-яА-Я]+$/ui'],
['username', 'match', 'pattern' => '/^[^а-яё]+$/i'],
['username', 'match', 'pattern' => '/^[a-z]+$/i'],
['username', 'match', 'pattern' => '/[a-z]+/i'],
// \w соответствует [a-zA-Z0-9_]
['username', 'match', 'pattern' => '/\w+/i'],
даже латиница не работает при такой валидации
'/^[^а-яА-Я] $/i'
Вы ищите только один символ, а чтобы найти от одного и больше надо использовать "+", вот так '/^[^а-яА-Я]+$/i'
['username', 'match', 'pattern' => '/[a-z]+/i', 'message' => '{attribute} должен содержать только латиницу!'],
Все SQL-запросы фреймворк защищает подготовленными выражениями PDO, если сами не сочиняете запросы конкатенацией. Проблем с этим нет.
if ($model->validate()) {
$model->save();
} else {
$model->save();
print_r($model->errors);
}
Нужно изменить строку с $model-> id_avtor1 = $row [4];
public static function getIdAuthor($name){
return Author::find()->select('id')->where('name=:name',[':name' => $name])->column();
}
$model-> id_avtor1 = Author::idAuthor($row[4]);
public function actionDelete($id)
{
if($this->findModel($id)->delete()){
FileHelper::removeDirectory($path_to_dir);
}
return $this->redirect(['advbyuser']);
}
public function beforeDelete()
{
if(!parent::beforeDelete()){
return false;
}
$path = 'path_to_dir';
FileHelper::removeDirectory($path);
return true;
}
public $input; // or $checkbox
columns => [
'input',
]
<?php
$url = Url::toRoute('path_to_css');
$thsi->registerJs("
$('#layerslider').layerSlider({
autoStart: true,
responsive:true,
responsiveUnder: 1280,
layersContainer: 1280,
hoverPrevNext: false,
skin: 'fullwidth',
skinsPath: '" . $url . "',
showCircleTimer: false,
hideOnMobile: false,
navStartStop: false,
navButtons: false
});
", View::POS_END);
?>
foreach ($items as $product) {
$item = new OrderItem();
$item->order_id = $model->id;
$item->item_id = $product->getProductId();
$item->quantity = $product->getQuantity();
$item->item_price = $product->getCost();
if(!$item->save()){
var_dump($item->errors);
die;
}
}
<?= Html::a('<i class="glyphicon glyphicon-trash text-danger"></i>', ['/order/default/delete-order', 'id' => $order->id], [
'data-toggle' => 'tooltip',
'data-placement' => 'bottom',
'title' => 'Удалить заказ из корзины',
'data' => [
'confirm' => 'Вы уверены?',
'data-method' => 'get',
'delete-url' => Url::to('/order/default/delete-order');
],
]) ?>
$('form').on('beforeSubmit', function(){
var data = $(this).serialize();
var url = $(selector).attr('data-delete-url');
$.ajax({
url: url,
type: 'POST',
data: data,
success: function(response){
$('#basket').html(response);
},
error: function(){
alert('Error!');
}
});
return false;
});
<?= $form->field($model, 'typeRequest')->dropDownList([],['class' => 'class_name']) ?>
//указываете пространство имён
use components\GoogleAuthenticator;
//используете
$ga = new GoogleAuthenticator;
'buttons' => [
'add' => function ($url, $model, $key)
{
if($model->category_id == 0){
return Html::a('<span class="glyphicon glyphicon-plus"></span>', $url);
}
},
]