Спасибо за наводку. Мысль справедливая. Но о каком конкретно параметре идет речь?
перепробовал все таймауты, что нашел:
параметры mysql:
set global wait_timeout = 100000;
set global interactive_timeout = 100000;
php.ini: mysql.connect_timeout=100
В Apache таймаутов не нашел.
Результат = 0.
Премного благодарен. Прошу не судить строго. На Drupal только 2 месяца.
Создал для теста простую страницу в содержании. Вставил туда кусок PHP.
Всё оказалось правдой:
1. При загрузке ядра из внешнего PHP контроля прав нет.
2. А также и контроля зависимостей тоже НЕТ. Грузится "типа" всё необходимое, но, как показывает мой случай, неизвестно где и что глюканёт.
3. $entity->field->value='new' сразу сваливает в ошибку.
4. $entity->set('field', 'some_value'); $entity->save(); честно срабатывает.
И всё же в продолжение темы.
0. Пути Drupal не исповедимы
2. Спасибо.
3. $entity->field->value='new'; echo $entity->field->value; выдает 'new'. Без Save ошибок нет.
$entity->set('field', 'some_value'); Один хрен не работает. Для эксперимента создал новую сущность. Тупо с одним текстовым полем. Те же яйца, только в профиль.
Лог сейчас пишет "Error: Undefined constant "Drupal\\Core\\Entity\\SAVED_UPDATED". По курил тему. Похоже у модулей крыша съехала. Завтра "почищу компостером" зависимости. Переустановлю что можно.
Про логи то я и забыл. Но! Там оказалось всё еще веселее.
" Attempt to create a field 'field' that does not exist on entity type 'object'".
Чудесатая история. Когда я поле читаю, оно есть. А когда записываю, его нет.
Ну типичный намёк на недостаток прав. НО! Сейчас отключил контроль прав Гостю на мою сущность "object". Результат тот же.
Огромное СПАСИБО! всё получилось через:
$entity = \Drupal::entityTypeManager()->getStorage( 'objects')->load();
$entity->set($field_name, $new_value);
$entity->save();
---
PS: А с кэшем я еще по играюсь. Ибо массовые операции с БД через entity работают на порядок медленнее, чем, через $query = \Drupal::database()->update(...
вау!!! так это мне предотаточно. и не надо маяться с кэшем и "левыми" update. Grand merci.
Упс. Не увидел в примере "condition". не же не все записи апдэйтить. Куда "primary key" тут вставить ?
с тэгами примерно понятно. можно попробовать.
нет блоков. кэш вьюхи выключен. update на отдельной странице в WebForms. после update идет "header('Location: '.$redirect);" на view отдельной страницей и там нет новой цифры. Страница перезагружается.
через Entity можно програмно сделать update? В том то и вся проблема. Мне надо с WebForms записать поле. WebForms сам это не умеет
Прочитал, но не совсем "догнал".
Есть у меня тип сущности (entity) по имени "obects" с набором (bundle) по имени "data". В наборе поле "code". Есть view по имени "code_list" , которая показывает список этих "code".
У меня нет модуля. Нет хуков. Есть PHP вставка в WebForm: \Drupal::database()->update этого поля одной записи по "primary key".
мой кэш тэг будет: "obects_list:data" ?
после update мне надо выполнить : Cache::invalidateTags("obects_list:data");?
Не понимаю. Куда тут запихнуть view по имени "code_list" ?
Эта фигня случается постоянно, когда попадается некорректно удаляющийся модуль. Иногда помогает перезапись "core". А в принципе ничего критичного. У меня пол года работает. То появляется. То пропадает.
а если через AJAX? если это GET, то можно в адресной строке передать параметры. Будет, как в браузере.
типа $.ajax({url:'/get_phone.php?phone='+'79123456789', complete: function (response)...
Ограничение на общее количество полей сущностей Drupal 9.1
Спасибо за наводку. Мысль справедливая. Но о каком конкретно параметре идет речь?
перепробовал все таймауты, что нашел:
параметры mysql:
set global wait_timeout = 100000;
set global interactive_timeout = 100000;
php.ini: mysql.connect_timeout=100
В Apache таймаутов не нашел.
Результат = 0.
user_authenticate() нету в Drupal 9 или почему не работает "$entity->save();" во внешнем PHP
Всем спасибо. Вопрос закрыт.
user_authenticate() нету в Drupal 9 или почему не работает "$entity->save();" во внешнем PHP
Премного благодарен. Прошу не судить строго. На Drupal только 2 месяца.
Создал для теста простую страницу в содержании. Вставил туда кусок PHP.
Всё оказалось правдой:
1. При загрузке ядра из внешнего PHP контроля прав нет.
2. А также и контроля зависимостей тоже НЕТ. Грузится "типа" всё необходимое, но, как показывает мой случай, неизвестно где и что глюканёт.
3. $entity->field->value='new' сразу сваливает в ошибку.
4. $entity->set('field', 'some_value'); $entity->save(); честно срабатывает.
И всё же в продолжение темы.
user_authenticate() нету в Drupal 9 или почему не работает "$entity->save();" во внешнем PHP
0. Пути Drupal не исповедимы
2. Спасибо.
3. $entity->field->value='new'; echo $entity->field->value; выдает 'new'. Без Save ошибок нет.
$entity->set('field', 'some_value'); Один хрен не работает. Для эксперимента создал новую сущность. Тупо с одним текстовым полем. Те же яйца, только в профиль.
Лог сейчас пишет "Error: Undefined constant "Drupal\\Core\\Entity\\SAVED_UPDATED". По курил тему. Похоже у модулей крыша съехала. Завтра "почищу компостером" зависимости. Переустановлю что можно.
user_authenticate() нету в Drupal 9 или почему не работает "$entity->save();" во внешнем PHP
Про логи то я и забыл. Но! Там оказалось всё еще веселее.
" Attempt to create a field 'field' that does not exist on entity type 'object'".
Чудесатая история. Когда я поле читаю, оно есть. А когда записываю, его нет.
Ну типичный намёк на недостаток прав. НО! Сейчас отключил контроль прав Гостю на мою сущность "object". Результат тот же.
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
Огромное СПАСИБО! всё получилось через:
$entity = \Drupal::entityTypeManager()->getStorage( 'objects')->load();
$entity->set($field_name, $new_value);
$entity->save();
---
PS: А с кэшем я еще по играюсь. Ибо массовые операции с БД через entity работают на порядок медленнее, чем, через $query = \Drupal::database()->update(...
Прошу помощи в решении задачи
мда. это не та тема. мысль есть, но на SQL. связать эту таблицу с самой собой со сдвигом на одну строку. как это накрутить на вьюхах. подумать страшно
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
pardon. похоже узрел. = $id
Прошу помощи в решении задачи
с агрегацией справа в настройках вьюхи не игрался?
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
вау!!! так это мне предотаточно. и не надо маяться с кэшем и "левыми" update. Grand merci.
Упс. Не увидел в примере "condition". не же не все записи апдэйтить. Куда "primary key" тут вставить ?
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
с тэгами примерно понятно. можно попробовать.
нет блоков. кэш вьюхи выключен. update на отдельной странице в WebForms. после update идет "header('Location: '.$redirect);" на view отдельной страницей и там нет новой цифры. Страница перезагружается.
через Entity можно програмно сделать update? В том то и вся проблема. Мне надо с WebForms записать поле. WebForms сам это не умеет
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
Прочитал, но не совсем "догнал".
Есть у меня тип сущности (entity) по имени "obects" с набором (bundle) по имени "data". В наборе поле "code". Есть view по имени "code_list" , которая показывает список этих "code".
У меня нет модуля. Нет хуков. Есть PHP вставка в WebForm: \Drupal::database()->update этого поля одной записи по "primary key".
мой кэш тэг будет: "obects_list:data" ?
после update мне надо выполнить : Cache::invalidateTags("obects_list:data");?
Не понимаю. Куда тут запихнуть view по имени "code_list" ?
результаты $query = \Drupal::database()->update не видит view в той же сессии. Drupal 9.1.5
Кэш конкретных вьюх отключен. А вот кэш тэги это интересное направление для поиска
Постоянно перекидывает на /core/install.php
интересный скрипт. особенно, когда знаешь какой модуль глюкнул
Постоянно перекидывает на /core/install.php
Эта фигня случается постоянно, когда попадается некорректно удаляющийся модуль. Иногда помогает перезапись "core". А в принципе ничего критичного. У меня пол года работает. То появляется. То пропадает.
GET-запрос с помощью XMLHTTPRequest
а если через AJAX? если это GET, то можно в адресной строке передать параметры. Будет, как в браузере.
типа $.ajax({url:'/get_phone.php?phone='+'79123456789', complete: function (response)...