Làm cách nào để dạy PhpStorm nhận biết cú pháp SQL của drupal {bảng}?


13

Tôi đang làm việc với một số dự án drupal thực sự cũ đầy các truy vấn SQL. Sự hiểu biết về SQL của PhpStorm rất tiện dụng tuy nhiên tôi có vấn đề với chủ nghĩa drupalism như thế nào {table_name}. IDE phàn nàn rằng <reference> expected, got '{'.

Làm cách nào tôi có thể thiết lập PhpStorm để nó hiểu rằng chuỗi bên trong dấu ngoặc nhọn chỉ là tên bảng? Hoặc ít nhất làm cho nó bỏ qua các dấu ngoặc nhọn?


1
Bạn đang sử dụng tích hợp Drupal? Tôi chưa bao giờ thấy vấn đề này với PHPStorm. Bạn có một plugin đặc biệt cho SQL có thể gây ra sự cố không?
googletorp

@googletorp vâng Tôi đang sử dụng plugin hỗ trợ drupal kèm theo PhpStorm
SiliconMind

1
@SiliconMind Điều đó không được hỗ trợ, tôi nghĩ vậy. Bạn có thể đặt phương ngữ sql, nhưng bạn không thể đặt điều cụ thể này, có thể vì các plugin khác có thể chạy mã của bạn và cung cấp cho bạn kết quả trực tiếp (như Công cụ cơ sở dữ liệu và SQL) ... có thể. Tôi chưa bao giờ sử dụng nó, nhưng tôi không chắc đó là một thực hành tốt.
golddragon007

Câu trả lời:


9

Trong Tùy chọn PhpStorm> Công cụ> Cơ sở dữ liệu> Thông số người dùng:

  • Kiểm tra "Kích hoạt bằng chuỗi ký tự bằng SQL tiêm"
  • Thêm \{\w+\}vào các mẫu tham số.

Bạn cũng có thể muốn sửa đổi dòng %\w+được phép cho ngôn ngữ php cho trình giữ chỗ như thế nào %d. Xem ảnh chụp màn hình và bài đăng trên blog PhpStorm của JetBrain: Cấu hình tiêm ngôn ngữ cơ sở dữ liệu .

Ảnh chụp màn hình tùy chọn PhpStorm


1
Tôi sẽ thay đổi \{\w+\}để \{(\w+)\}hoạt động tốt hơn với thực thi truy vấn của PhpStorm (phím tắt Ctrl + Enter). Nếu không có dấu ngoặc đơn bổ sung, nếu bạn cố gắng thực hiện truy vấn, nó sẽ nhắc bạn nhập tham số có tên là số 1 cho bạn {table_name}, nhưng với dấu ngoặc đơn, nó sẽ nhắc bạn một cách hữu ích hơn cho tham số tên_bảng .
morbiD

Hơn nữa với nhận xét trước đây của tôi, đây là những ví dụ về sự khác biệt mà các dấu ngoặc đơn sẽ tạo ra. Đối với chuỗi truy vấn SELECT * FROM {node} WHERE nid = :nid, nhấn phím tắt Ctrl + Enter sẽ hiển thị các lời nhắc sau: có dấu ngoặc đơnkhông có dấu ngoặc đơn .
morbiD

Điều này không giải quyết được vấn đề trong đó các cột trong bảng được đánh dấu là chưa được giải quyết. Cần một giải pháp nhận ra bảng và các cột của nó, như trong cú pháp sql thông thường.
Semra


-5

Tôi không biết cách nào để khiến PHPStorm nhận ra cú pháp SQL Drupal.

Nhưng nếu bạn chỉ muốn gỡ lỗi một truy vấn được tạo bởi Drupal, thì bạn có thể xóa các dấu ngoặc nhọn khỏi truy vấn sau khi sao chép nó vào bảng điều khiển truy vấn PHPStorm.


1
Lý do cho các nhược điểm của lời khuyên này là vì việc xóa hoặc bỏ qua các dấu ngoặc quanh tên bảng sẽ can thiệp vào hành vi tiền tố bảng của Drupal. Xem liên kết này để biết chi tiết về tính năng: drupal.org/node/2622
Đám cưới Weston

@WestonWpping Tôi không đề xuất xóa dấu ngoặc nhọn trong khi thực hiện truy vấn trong Drupal. Đề nghị của tôi là xóa dấu ngoặc sau khi sao chép truy vấn từ Drupal sang bảng điều khiển truy vấn PHPStorm. Đó là một chút công việc thủ công, nhưng sẽ giúp khi gỡ lỗi các truy vấn được tạo bởi Drupal.
Mắt

Tôi hiểu rồi! Chà, đó không phải là câu trả lời của bạn ở bất cứ đâu, vì vậy một số người có thể bị nhầm lẫn.
Đám cưới Weston

Tôi cập nhật câu trả lời với một chút bối cảnh.
Mắt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.