$acl_ids = array(1,2,3);
$database = \Drupal::database();
$result = $database
->query("SELECT {nid} FROM {acl_node} WHERE grant_update = :grant",
['grant' => 1,])
->condition('acl_id', $acl_ids, 'in')
->fetchField();
残念ながら->condition
次のエラーが発生するため、パーツが機能しません。
未定義のメソッドDrupal\Core\Database\Statement :: condition()の呼び出し
代わりにどの方法を使用する必要がありますか?
条件は動的クエリでのみ使用されます。 query()
メソッドは、静的SQLを実行するためのものです。
動的バージョンは次のようになります。
$result = $database
->select('acl_node', 'n')
->fields('n', ['nid'])
->condition('grant_update', 1)
->condition('acl_id', $acl_ids, 'IN')
->execute()
->fetchField();
そして静的:
$result = $database
->query("SELECT nid FROM {acl_node} WHERE grant_update = :grant AND acl_id IN (:acl_ids[])", [':grant' => 1, ':acl_ids[]' => $acl_ids])
->fetchField();