0

Propel 1.6 で SQL UPDATE の "SET" ブロックに関数を追加する方法を知りたいです。例 UPDATE foo SET myfield = length(:param) WHERE x = 3;

このような関数は "->where()" に埋め込むことができますが、明らかに "->update()" には埋め込むことができません。私が探しているのは、次のような構文です。

FooQuery::create()
        ->filterByX(3)
        ->update(array("MyField" => array("length(?)", 42));

どうにかしてこれを行うことはできますか、それともクエリを「カスタム SQL」として記述する必要がありますか?

4

1 に答える 1

0

update 配列は、一連の列名と値です。値は引用符で囲まれた値であるため、そこに入力したものはすべて (関数ではなく) 文字列として扱われます。

申し訳ありませんが、他に解決策はありません。

于 2014-03-13T13:33:41.317 に答える