Partkeepr: パーツID使用時のスキャンエラー

作成日 2017年11月14日  ·  4コメント  ·  ソース: partkeepr/PartKeepr

PartKeepr1.3.0を使用しています

バーコードをスキャンしてパーツの変更ダイアログを開くのに問題があります。

プレフィックス「PID-」+パーツの一意のIDを使用してバーコードを作成しました

アクションとして「パーツの検索」を使用してPartKeeprにコード「PID-」を設定し、PartKeepr.PartBundle.Entity.Partを選択しました。 検索フィールドとしての@id

他のバーコードをスキャンして保管場所を探すことができ、それらは期待どおりにその場所の部品のクエリを開きます。 これは、パーツルックアップに固有のようです。

たとえば「PID-12」のバーコードをスキャンすると、PartKeeprはスキャンに応答しますが、次のエラーが表示されます。

詳細

[構文エラー]行0、列83:エラー:予期される=、<、<=、<>、>、> =、!=、取得された 'id'

リクエスト

GET http://192.168.0.196/parts/web/api/parts?_dc=1510689688405

レスポンスステータスコード

500

応答

{"@context": "\ / parts \ / web \ / api \ / contexts \ / Error"、 "@ type": "Error"、 " hydra:title ": "エラーが発生しました"、 " hydra:description " : "[構文エラー]行0、列83:エラー:予期される=、\ u003C、\ u003C =、\ u003C \ u003E、\ u003E、\ u003E =、!=、取得された\ 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:true
maxUploadSize:2097152
isOctoPartAvailable:false
availableImageFormats:JPG、GIF、PNG
max_users:無制限
authentication_provider:PartKeepr.Auth.HTTPBasicAuthenticationProvider
tip_of_the_day_uri: https ://partkeepr.org/tips/%s
password_change:true
patreonStatus:[オブジェクトオブジェクト]

Bug

最も参考になるコメント

より良い回避策は、 src/PartKeepr/DoctrineReflectionBundle/Filter/AssociationPropertyTrait.phpでプロパティ名を直接置き換えることです

public function setProperty($property)
{
    $this->property = str_replace("@", "", $property);
}

全てのコメント4件

ここで何が起こっているのかはわかっていると思いますが、解決方法がわかりません。 GETリクエストのid変数の前に@が付加されているようです。

その場合、エラーが発生します。getリクエストを変更して、その@シンボルを削除すると、次のような応答が返されます。

{"@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":[]}}

これは、ルックアップクエリを呼び出すようにUIに指示する正しい応答を返すように見えます...?

だから私は問題は、この@がバーコードスキャンのGETクエリに含まれるのをどのように制限できるかということだと思います。

わかりました、これは解決策ではありませんが、回避策を見つけました。

次のファイルを変更する必要があり、すべてが機能するようになりました。アイテムIDをスキャンでき、ルックアップは期待どおりに機能します。

/src/PartKeepr/DoctrineReflectionBundle/Filter/AdvancedSearchFilter.php

行353を変更します。

$filter->setProperty($data->property);
に:
$filter->setProperty(str_replace("@","",$data->property));

基本的に、問題の原因は@記号であり、GETAjaxリクエストから削除する必要があります。 その変更をどこで行うかは正確にはわかりませんが、これを適切に行う方法について誰かがチャイムを鳴らすことができるまで、上記を行うことは一時的な修正として私にとってはうまくいきました...

同じ問題が発生しました。https://github.com/partkeepr/PartKeepr/issues/894と同じようです

より良い回避策は、 src/PartKeepr/DoctrineReflectionBundle/Filter/AssociationPropertyTrait.phpでプロパティ名を直接置き換えることです

public function setProperty($property)
{
    $this->property = str_replace("@", "", $property);
}
このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

JoarGjersund picture JoarGjersund  ·  12コメント

Gasman2014 picture Gasman2014  ·  26コメント

michielbrink picture michielbrink  ·  7コメント

mctomaszek picture mctomaszek  ·  20コメント

baradhili picture baradhili  ·  17コメント