PhpStormにdrupal {table} SQL構文を認識するように教える方法は?


13

私は、SQLクエリでいっぱいの本当に古いdrupalプロジェクトを扱っています。PhpStormのSQLの理解は非常に便利ですが、私はのようなドルパリズムに問題があり{table_name}ます。IDEは不平を言う<reference> expected, got '{'

中括弧内の文字列が単なるテーブル名であることを理解するようにPhpStormを設定するにはどうすればよいですか?または、少なくとも中括弧を無視しますか?


1
Drupal統合を使用していますか?PHPStormでこの問題を見たことがありません。問題を引き起こす可能性のあるSQLの特別なプラグインはありますか?
googletorp

@googletorpはい私はPhpStormにバンドルされているdrupalサポートプラグインを使用しています
SiliconMind

1
@SiliconMindそれはサポートされていないと思います。SQL方言を設定することはできますが、この特定のものを設定することはできません。他のプラグインがコードを実行して、(データベースツールやSQLなどの)ライブで結果を得ることができるためです...たぶん。私はそれを使ったことはありませんが、それが良い習慣かどうかはわかりません。
golddragon007 2016年

回答:


9

PhpStorm設定>ツール>データベース>ユーザーパラメータ:

  • 「SQLインジェクションで文字列リテラルで有効にする」をチェックします
  • \{\w+\}パラメータパターンに追加します。

%\w+ようなプレースホルダーの言語phpで許可されるように行を変更することもでき%dます。スクリーンショットと、JetBrainのPhpStormブログ投稿:Database Language Injection Configurationもご覧ください。

PhpStorm設定のスクリーンショット


1
私はPhpStormのクエリ実行(Ctrl + Enterショートカット)でよりうまく機能するように変更\{\w+\}\{(\w+)\}ます。余分な括弧がないと、クエリを実行しようとすると、#1と呼ばれるパラメーターをに入力するように求められます{table_name}が、括弧を使用すると、table_nameパラメーターの入力を促すのに役立ちます。
morbiD 2017

私の以前のコメントに加えて、ここに括弧が作る違いの例があります。クエリ文字列の場合SELECT * FROM {node} WHERE nid = :nid:Ctrlキー+キーを押すと、ショートカットが表示さに次のプロンプトを入力括弧で括弧なし
morbiD 2017

これは、テーブルの列が未解決としてマークされる問題を解決しません。通常のSQL構文のように、テーブルとその列を認識するソリューションが必要です。
Semra


-5

PHPStormにDrupal SQL構文を認識させる方法を知りません。

ただし、Drupalによって作成されたクエリをデバッグするだけの場合は、PHPStormクエリコンソールにコピーした後、クエリから中括弧を削除できます。


1
このアドバイスに反対票を投じる理由は、テーブル名の前後の角括弧を削除するか含めることを怠ると、Drupalのテーブル接頭辞の動作が妨げられるためです。機能の詳細については、このリンクを参照してください。drupal.org
Weston Wedding

@WestonWedding Drupalでクエリを実行しているときに中括弧を削除することはお勧めしませんでした。私の提案は、DrupalからPHPStormクエリコンソールにクエリをコピーした後、ブラケットを削除することでした。これは少し手作業ですが、Drupalによって作成されたクエリをデバッグするときに役立ちます。
Eyal

そうですか!まあ、それはあなたの答えにはどこにもないので、一部の人々は混乱するかもしれません。
Weston Wedding

私はもう少しコンテキストで答えを更新しました。
Eyal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.