Как удалить значение равное abcd из списка значений
16 сентября 2019 в 15:28
Есть. Basket на страницу приходит значение abcd надо удалить значение из списка значений в basket-е
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Вам бы подтянуть навыки выражения мыслей. Ничерта не понятно, среднестатистическому мимо-проходящему.
есть некий тип материала 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
во вторыххх.: может не надо добавлять? Или.....
Модули для слабаков. Самопис у него