Podczas korzystania z metody kolekcji Magento, addFieldToFilter umożliwia filtrowanie według wartości NULL? Chcę wybrać wszystkie produkty w kolekcji, które mają atrybut niestandardowy, nawet jeśli do atrybutu nie została przypisana żadna wartość.Magento addFieldToFilter allow NULLs
Odpowiedz
Nie trzeba używać addFieldToFilter
.
teraz rozwiązanie:
atrybutów nazwa jest znana jako code
w Magento, wystarczy skorzystać z poniższego kodu, aby uzyskać wszystkie produkty, które mają konkretny atrybut w postaci tablicy
$prodsArray=Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('custom_attribute_code')
->getItems();
można również określić pewne warunki dla wartości atrybutu w addAttributeToFilter
w drugim parametrze addAttributeToFilter.
można znaleźć tę metodę w tym pliku (dalsze badania):
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php
Filtrowanie kolekcji produkt przez/null pustych atrybutów ma dwa możliwe rozwiązania. Magento używa INNER JOIN, aby pobrać wartości atrybutów do filtrowania. ALE jeśli atrybut produktu nie ma przypisanej wartości, połączenie nie powiedzie się, ponieważ brakuje tabeli/relacji bazy danych.
Rozwiązanie nr 1: Zastosowanie addAttributeToFilter() i zmienić typ przyłączenia od "wewnętrznego" (domyślnie) na "lewo":
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToFilter('custom_attribute', array(... condition options ..), 'left');
Rozwiązanie nr 2: Upewnij się, że atrybut niestandardowy ma wartość domyślną. Magento jest konserwatywne pod tym względem. Magento utworzy relację między atrybutem a produktem tylko wtedy, gdy podana zostanie wartość atrybutu. Tak więc w przypadku braku wartości określonej przez użytkownika lub wartości domyślnej atrybut nie będzie dostępny do filtrowania produktu , nawet jeśli atrybut pojawi się w widoku szczegółów produktu w panelu administracyjnym.
Widzę, że już znalazł rozwiązanie, ale istnieje również opcja:
$collection->addFieldToFilter('parent_item_id', array('null' => true));
Ale jeśli chcesz korzystać z „null” => false, co nie działa. (i zauważyłem, można użyć elementów takich jak "w", "NIN", "korektor", "NEQ", "gt"), można to zrobić:
$collection->addFieldToFilter('parent_item_id', array('neq' => 'NULL'));
nadzieję, że to nadal pomocne. ..
Zobacz dokumentację w kodzie Varien_Data_Collection_Db :: _ getConditionSql(). Opisuje wszystkie możliwe opcje, takie jak wspomniana "null", ale także "notnull" na odwrót. – fietserwin
Działa to na NULL filtrów
$collection->addFieldToFilter('parent_item_id', array('notnull' => true));
Ponieważ pytanie nie pasuje dokładnie tytuł pytanie i znalazłem je wielokrotnie wyszukując STAN: szczególną wartość lub NULL
Jeśli chcesz filtrować kolekcji dopasowanie wartości lub null, wówczas można użyć:
$collection->addFieldToFilter('<attribute>', array(
array('eq' => '<value>'),
array('null' => true)
));
- 1. SQL: jak sprawdzić, czy pole ma "Allow nulls" zaznaczone lub nie jest zaznaczone przez polecenie SQL
- 2. Funkcje LGD i NULLS
- 3. PDO Przygotowane oświadczenia - NULLs
- 4. Magento: Otrzymuj zamówienia według określonej metody płatności
- 5. Komenda OpenRowSet w TSQL wraca NULLS
- 6. Nulls in Scala ... dlaczego jest to możliwe?
- 7. Jak zrobić NULLS OSTATNIEGO w SQLite?
- 8. Magento: paginacja filtrowana kolekcja produktów
- 9. Magento - Moduł WSTAW, AKTUALIZACJA, USUŃ, WYBIERZ kod
- 10. Kolekcja Magento nie wybiera atrybutu
- 11. jquery.ajax Access-Control-Allow-Origin
- 12. htaccess Access-Control-Allow-Origin
- 13. Magento, jak przechowywać w pamięci podręcznej produktu Kolekcja
- 14. ORDER BY DATE pokazuje najpierw NULLS, a następnie najnowsze daty.
- 15. Ładowanie html Magento dla dzieci poza Magento
- 16. Magento: lista wszystkich wartości pojedynczego atrybutu
- 17. Eclipse `allow foldery wyjściowe dla folderów źródłowych`
- 18. HTML5 Canvas access-control-allow-pochodzenie błąd
- 19. Wartość domyślna dla Access-Control-Allow-Metody
- 20. Problemy z aplikacją Access-Control-Allow-Origin
- 21. flash allow button nie można nacisnąć
- 22. AuthComponent: Różnica między dozwolonymi akcjami i allow()?
- 23. Github API i Access-Control-Allow-Origin
- 24. Czy nagłówek HTTP Allow powinien zawierać "OPCJE"?
- 25. Magento, addAttributeToSelect, alias
- 26. Wyczyść pamięć podręczną Magento
- 27. Magento pozycja kolumna siatki
- 28. Jak pobierać pliki Magento
- 29. Przekierowanie w magento
- 30. Aktualizowanie atrybutów Magento Programowo
Dzięki za wskazanie addFieldToFilter - doprowadziło to do rozwiązania obsługi NULL FIE lds – leepowers
to jest rzeczywiście błędne, to zrobi porównanie z pustym filtrem "" zamiast "jest zerowym". – useless