0

Extbase で使用されている "in" プロパティが機能していないようです。

$actorの配列が含まれていますActor model objects。私のMovie modelActorは m:n の関係にあります。

私は私の中でこのようなことを試しましたMovie Repository:

$query=$this->createQuery();
$query->matching($query->in('actors',$actors));
$result = $query->execute()->toArray();

$result見せているNULL

私も配列を渡そうとしactor uidsましたが、それもうまくいきません:

$query->matching($query->in('actors',[$actor_1_uid,$actor_2_uid]));

もちろんありますがcontains、使ったinほうが便利です。

4

2 に答える 2

3

あなたの発言に問題はないと思います。明確にするために、「in」ステートメントは、一致するステートメント内のどこかに配置する必要があります。これは、あなたの場合は正しいです。

ただし、作成クエリを変更する必要があります

$query = $this->createQuery();

それ以外の

$query=$this->create->query();

それでも結果が得られない場合は、extbase によって実行された SQL ステートメントを正確に確認することをお勧めします。TYPO3 にはトリッキーな方法があります。

コアで次のファイルを見つける必要があります:/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php

replacePlaceHolders 関数を見つけて、関数の最後に次のコードを追加します。

if (strpos( $sqlString, "my_table_name" ) !== false) {
echo $sqlString;
}

次の「my_table_name」テーブルに対して行われているすべてのステートメントをエコーし​​ます。もちろん、本番サーバーでは絶対に行わないでください。

それが役立つことを願っています!乾杯、オリヴィエ

于 2013-08-05T00:11:36.977 に答える