Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ PartKeepr 1.3.0
Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΎ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠΈΡ -ΠΊΠΎΠ΄ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΡΠΊΡΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π΅ΡΠ°Π»ΠΈ.
Π― ΡΠΎΠ·Π΄Π°Π» ΡΡΡΠΈΡ -ΠΊΠΎΠ΄Ρ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Β«PID -Β» + ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π΅ΡΠ°Π»ΠΈ.
Π― ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΠΊΠΎΠ΄ Β«PID-Β» Π² PartKeepr Ρ Β«Search PartΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±ΡΠ°Π» PartKeepr.PartBundle.Entity.Part. @id Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ°.
Π― ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠΈΡ -ΠΊΠΎΠ΄Ρ Π΄Π»Ρ ΠΌΠ΅ΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΈ ΠΎΠ½ΠΈ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° Π΄Π΅ΡΠ°Π»ΠΈ Π² ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΠΎΠΈΡΠΊΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ.
ΠΠΎΠ³Π΄Π° Ρ ΡΠΊΠ°Π½ΠΈΡΡΡ ΡΡΡΠΈΡ -ΠΊΠΎΠ΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«PID-12Β», PartKeepr ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
[Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°] ΡΡΡΠΎΠΊΠ° 0, ΡΡΠΎΠ»Π±Π΅Ρ 83: ΠΡΠΈΠ±ΠΊΠ°: Expected =, <, <=, <>,>,> =,! =, ΠΠΎΠ»ΡΡΠ΅Π½ 'id'
ΠΠΠΠ£Π§ΠΠ’Π¬ http://192.168.0.196/parts/web/api/parts?_dc=1510689688405
500
{"@context": "\ / parts \ / web \ / api \ / context \ / Error", "@ type": "Error", " hydra: title ": "ΠΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°", " hydra: description " : "[Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°] ΡΡΡΠΎΠΊΠ° 0, ΡΡΠΎΠ»Π±Π΅Ρ 83: ΠΡΠΈΠ±ΠΊΠ°: ΠΠΆΠΈΠ΄Π°Π΅ΡΡΡ =, \ u003C, \ u003C =, \ u003C \ u003E, \ u003E, \ u003E =,! =, Got \ u0027id \ u0027"}
doctrine_orm_version: 2.5.4
doctrine_dbal_version: 2.5.2
doctrine_common_version: 2.6.0-DEV
php_version: 7.0.22-0ubuntu0.16.04.1
auto_start_session: ΠΏΡΠ°Π²Π΄Π°
maxUploadSize: 2097152
isOctoPartAvailable: Π»ΠΎΠΆΡ
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ: JPG, GIF, PNG
max_users: Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎ
Authentication_provider: PartKeepr.Auth.HTTPBasicAuthenticationProvider
tip_of_the_day_uri: https://partkeepr.org/tips/%s
password_change: ΠΏΡΠ°Π²Π΄Π°
patreonStatus: [ΠΎΠ±ΡΠ΅ΠΊΡ Object]
ΠΡΠΌΠ°Ρ, Ρ Π·Π½Π°Ρ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π½ΠΎ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Π² Π·Π°ΠΏΡΠΎΡΠ΅ GET ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ id Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ @.
ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°, Π΅ΡΠ»ΠΈ Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»ΡΡ ΡΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ» @, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
{"@context":"\/parts\/web\/api\/contexts\/Part","@id":"\/parts\/web\/api\/parts?_dc=1510773608949\u0026page=1\u0026start=0\u0026itemsPerPage=50\u0026group={"property":"categoryPath","direction":"ASC"}\u0026order=[{"property":"category.categoryPath","direction":"ASC"},{"property":"name","direction":"ASC"}]\u0026filter=[{"subfilters":[{"subfilters":[],"property":"id","operator":"LIKE","value":"43W"}],"type":"OR"}]","@type":"hydra:PagedCollection","hydra:totalItems":0,"hydra:itemsPerPage":50,"hydra:firstPage":"\/parts\/web\/api\/parts?_dc=1510773608949\u0026start=0\u0026itemsPerPage=50\u0026group={"property":"categoryPath","direction":"ASC"}\u0026order=[{"property":"category.categoryPath","direction":"ASC"},{"property":"name","direction":"ASC"}]\u0026filter=[{"subfilters":[{"subfilters":[],"property":"id","operator":"LIKE","value":"43W"}],"type":"OR"}]","hydra:lastPage":"\/parts\/web\/api\/parts?_dc=1510773608949\u0026start=0\u0026itemsPerPage=50\u0026group={"property":"categoryPath","direction":"ASC"}\u0026order=[{"property":"category.categoryPath","direction":"ASC"},{"property":"name","direction":"ASC"}]\u0026filter=[{"subfilters":[{"subfilters":[],"property":"id","operator":"LIKE","value":"43W"}],"type":"OR"}]","hydra:member":[],"hydra:search":{"@type":"hydra:IriTemplate","hydra:template":"\/parts\/web\/api\/parts{?}","hydra:variableRepresentation":"BasicRepresentation","hydra:mapping":[]}}
ΠΠΎΡ ΠΎΠΆΠ΅, ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ, ΡΠΎΠΎΠ±ΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ ...?
ΠΡΠ°ΠΊ, Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ @ Π² Π·Π°ΠΏΡΠΎΡ GET ΠΏΡΠΈ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΠΈΡ -ΠΊΠΎΠ΄Π°?
Π₯ΠΎΡΠΎΡΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π½Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Ρ Π½Π°ΡΠ΅Π» ΡΠ°Π±ΠΎΡΡ.
ΠΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°ΠΉΠ», ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Ρ ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΈ ΠΏΠΎΠΈΡΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ:
/src/PartKeepr/DoctrineReflectionBundle/Filter/AdvancedSearchFilter.php
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ 353 From:
$filter->setProperty($data->property);
Π:
$filter->setProperty(str_replace("@","",$data->property));
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ» @, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΈ Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ° GET Ajax. Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, Π³Π΄Π΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° ΠΊΡΠΎ-ΡΠΎ Π½Π΅ Π²ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ...
ΠΠΎΠ»ΡΡΠΈΠ» ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ https://github.com/partkeepr/PartKeepr/issues/894
ΠΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² src/PartKeepr/DoctrineReflectionBundle/Filter/AssociationPropertyTrait.php
public function setProperty($property)
{
$this->property = str_replace("@", "", $property);
}
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ - Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π²
src/PartKeepr/DoctrineReflectionBundle/Filter/AssociationPropertyTrait.php