Что есть "значение артикула"? Запись одного из полей?
"удалить значение артикула" - значит у одного материала, типа "basket" удалить одно из значений его полей?
Хех... Ну и жесть, канеш... Попробую прокомментить:
<?php $user = User::load(\Drupal::currentUser()->id()); // На кой черт загружать юзера из загруженного юзера? Почему обращаетесь к сервису статически? $request= \Drupal::request()->query; // Снова, статика. Почему не используется DI? $request=reset($request); // Зачем меняется реквест? $article= $request['articul']; // Откуда 100% уверенность существования ключа?
// Статика! Читать "Закон Деметры"! Читать об именовании переменных! И о сервисах! $a=\Drupal::entityTypeManager()->getStorage('node')->loadByProperties([ 'type' => 'basket', 'field_polzovatel'=>$user->getUsername(), ]);
// Мдас... if(count($a)>=1) { // ... get the list of associated classrooms $aa = $node->get('field_artikuly')->getValue(); // Откуда взялся "$node"?? // ... get the key of the classroom $key = array_search($article, array_column($classrooms, 'target_id')); // Откуда взялся "$classrooms"?? return $key; // Почему возврат значения посреди метода? // ... remove the classroom $node->get('field_artikuly')->removeItem($key); // Зачем что-то дальше происходит, если метод уже вернул значение? // ... save the node. $node->save(); ?>
Слишком глубоко сидит непонимание процессов разработки, чтоб можно было указывать на причину "неработы" этого кода.
Рекомендации, субъективно:
Освойте навыки дебаггинга (XDebug, Devel tools)
Поинтересуйтесь основами программирования (почитайте книг, документацию PHP, Symfony и Drupal, в частности)
Набросайте на бумаге, для начала, то что пытаетесь осуществить, поймите как правильнее строить скрипт, и потом уже беритесь к реализации.
Хз почему так, я ведь не вижу всего бекграунда.
Код - тоже можно, если нет контриба решающего задачу (и если есть, конечно, понимание того "как" кодом). Друпал, в таком случае, выступает фреймворком которым можно управлять с помощью кода.
Комментарии
Вам бы подтянуть навыки выражения мыслей. Ничерта не понятно, среднестатистическому мимо-проходящему.
есть некий тип материала basket хочу у него удалить значение артикула(много значенй нужно удалить одно) равное abcd
Что есть "значение артикула"? Запись одного из полей?
"удалить значение артикула" - значит у одного материала, типа "basket" удалить одно из значений его полей?
views bulk operations
вод есть код но он не работает
<?php
$request= \Drupal::request()->query;
$aa = $node->get('field_artikuly')->getValue();
$key = array_search($article, array_column($aa, 'target_id'));
$node->get('field_artikuly')->removeItem($key);
$node->save();
$user = User::load(\Drupal::currentUser()->id());
$request=reset($request);
$article= $request['articul'];
$a=\Drupal::entityTypeManager()->getStorage('node')->loadByProperties([
'type' => 'basket',
'field_polzovatel'=>$user->getUsername(),
]);
if(count($a)>=1) {
?>
Хех... Ну и жесть, канеш...Попробую прокомментить:<?php
$user = User::load(\Drupal::currentUser()->id()); // На кой черт загружать юзера из загруженного юзера? Почему обращаетесь к сервису статически?
$request= \Drupal::request()->query; // Снова, статика. Почему не используется DI?
$request=reset($request); // Зачем меняется реквест?
$article= $request['articul']; // Откуда 100% уверенность существования ключа?
// Статика! Читать "Закон Деметры"! Читать об именовании переменных! И о сервисах!
$a=\Drupal::entityTypeManager()->getStorage('node')->loadByProperties([
'type' => 'basket',
'field_polzovatel'=>$user->getUsername(),
]);
// Мдас...
if(count($a)>=1) {
// ... get the list of associated classrooms
$aa = $node->get('field_artikuly')->getValue(); // Откуда взялся "$node"??
// ... get the key of the classroom
$key = array_search($article, array_column($classrooms, 'target_id')); // Откуда взялся "$classrooms"??
return $key; // Почему возврат значения посреди метода?
// ... remove the classroom
$node->get('field_artikuly')->removeItem($key); // Зачем что-то дальше происходит, если метод уже вернул значение?
// ... save the node.
$node->save();
?>
Слишком глубоко сидит непонимание процессов разработки, чтоб можно было указывать на причину "неработы" этого кода.
Рекомендации, субъективно:
Ещё можно начать использовать контриб, иначе зачем вообще тут друпал? Обычного PHP вполне было бы достаточно.
Хз почему так, я ведь не вижу всего бекграунда.
Код - тоже можно, если нет контриба решающего задачу (и если есть, конечно, понимание того "как" кодом). Друпал, в таком случае, выступает фреймворком которым можно управлять с помощью кода.
даж не знаю как ответить. Во первых укажите модуль, который basket-e
во вторыххх.: может не надо добавлять? Или.....
Модули для слабаков. Самопис у него