yii2 ActiveRecord Обновление записи - поиск по id, пример кода (+ загрузка из массива)

Как-то так:

/**
 * Обновит клиента
 * 
 * @param  array $arrayData - ассоциативный массив с полями данных клиента
 */
public function updateClient($arrayData) 
{
	
	$Client = Client::findOne($arrayData['server_id']); // передаём id записи
	$Client->attributes = $arrayData; // сразу из массива
  //  $customer->name = $name;  // поля по отдельности
  //  $customer->email = $email;
   
	$Client->update();
}

yii2 ActiveRecord - загрузка данных из ассоциативного массива, сохранения и возврата id -- пример кода

Сохранить ActiveRecord, заполнив поля из ассоциативного массива можно в такой манере:

/**
 * Сохранит нового клиента и вернёт его id
 * 
 * @param  array $arrayData - ассоциативный массив с полями данных клиента
 * @return int              - id добавленного клиента
 */
public function createNewClient($arrayData) 
{
	$Client = new Client(); // создаём модель
	$Client->attributes = $arrayData; // загшружаем из массива
	
	print_r($Client);
	$Client->save();
	
	return $Client->id; // возвращаем id
}

Но чтобы проводить подобное присваивание:

JQuery отправка JSON данных метод POST -- пример кода

Вот такой замечательный пример (отправка данных именно в JSON формате):

var arr = { "login":"vasya_pupkin",
	"password":"password123"
 };

$.ajax({
    url: '/api/v1/onlogin',
    type: 'POST',
    data: JSON.stringify(arr),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        console.log(msg);
    }
});

Принять этот запрос средствами PHP можно так.

php Прочитать входящие JSON данные (запрос POST) - пример кода для чтения php://input

Читаем их входящие данне типа application/json так:

$data = json_decode(file_get_contents('php://input'), true);
print_r($data);

Например:

$postdata = \json_decode(file_get_contents('php://input'), true);
       // если есть нужные нам поля
       if (!empty($postdata['login']) && !empty($postdata['password'])) {
          // как-то код
       }

Источник (на базе):
stackoverflow.com/questions/18866571/receive-json-post-with-php

JQuery код для отправки запроса из консоли (POST)

Вот пример кода, который можно использовать, скажем для отладки API:

$.ajax({ // сам запрос
type: 'POST',
url: "/api/v1/onlogin",
data: {login : 'qwer@qwer3.ru', 'password' : 123456}, // данные которые передаём серверу
dataType: "json" // предполоижтельный формат ответа сервера
}).done(function(res) { // если успешно

console.log('Ответ получен: ', res);

yii2 Отключить блокировку csrf для действия action/контроллера

Управляйте полем контроллера enableCsrfValidation .

Например в проверке перед действиями:

public function beforeAction($action)
{            
    if ($action->id == 'my-action') {
        $this->enableCsrfValidation = false;
    }

    return parent::beforeAction($action);
}

где my-action -- имя действия.

Или можно выключить для всего контроллера:

public $enableCsrfValidation = false;

(не рекомендуется)

yii2 activequery column

yii2 activequery find by field one row

JQuery загрузка в консоль браузера -- пример кода (в т.ч. firebug, firefox)

Чтобы загрузить библиотеку в консоль - например при тестировании запросов к серверу, сначала исполните в ней (адрес ссылки начните с https://):

var jq = document.createElement('script');
jq.src = "ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
// ...  подождите пока добавится на страницу

//jQuery.noConflict(); // начинайте с этой строки свой клиентский код если есть конфликты с другими библиотеками

Yii2 получить хэш пароля - проверить что пароль правильный без "залогинивания", пример кода

Получить хэш пароля можно так:

$hash = Yii::$app->getSecurity()->generatePasswordHash($password);

А сравнить пароль с ранее полученным хэшем (не так как выше, а уже из базы) можно так:

if (Yii::$app->getSecurity()->validatePassword($password, $hash)) {
    // всё правильно
} else {
    // неправильный пароль!
}

Источник:
yiiframework.com/doc-2.0/guide-security-passwords.html

Pages

Subscribe to fkn+antitotal RSS