Điểm:0

Làm cách nào tôi có thể hiển thị tệp bằng trình định dạng theo chương trình trong bộ điều khiển?

lá cờ lb

Tôi đang cố gắng tạo bộ điều khiển để hiển thị tài liệu vênh vang bằng mô-đun swagger_ui_formatter cung cấp trình định dạng cho trường tệp hiển thị tệp vênh vang (yml, yaml, json) bằng cách sử dụng thư viện javascript để hiển thị tài liệu giống như trang web vênh vang. Sau đó, tôi sao chép tệp yml của mình trong thư mục mô-đun và trong bộ điều khiển của mình, tôi có thể tải tệp này.

  chức năng công khai buildApiDocumentation() {

    $file_system = \Drupal::service('file_system');

    $searchFiles = '/^.*\.(yml)$/';
    $directory = dirname(__DIR__,2).'/docs';

    $file = $file_system->scanDirectory($directory, $searchFiles, ['recurse' => FALSE]);
}

Nhưng tôi không biết làm cách nào để kết xuất tệp này bằng trình định dạng vênh mà mô-đun cung cấp, tôi không thể sử dụng cách truyền thống để sử dụng trình định dạng này, tạo loại nội dung với trường tệp và sau đó tạo chế độ xem và kết xuất nó, bởi vì đây là một quy trình rất thủ công và tôi cần sửa tệp tài liệu api trong một thư mục mà chỉ nhóm nhà phát triển mới có thể cập nhật.

Kevin avatar
lá cờ in
Tại sao bạn không thể trả lại một mảng kết xuất với chức năng chủ đề tùy chỉnh để làm những gì bạn muốn?
apaderno avatar
lá cờ us
Trình định dạng trường được sử dụng để hiển thị trường thực thể.Nếu không có thực thể được hiển thị, thì không thể sử dụng trình định dạng trường.
Mauricio avatar
lá cờ lb
@apaderno thú vị... tôi không biết điều đó, vì vậy tôi cần tạo một nút với tệp này và sử dụng nút này, tôi có thể hiển thị vì bây giờ là một thực thể, phải không?
apaderno avatar
lá cờ us
Đó là cách duy nhất để sử dụng bộ định dạng trường.
Điểm:0
lá cờ de

Bạn có thể trả lại một Tệp Nhị PhânRespose từ bộ điều khiển của bạn:

sử dụng Symfony\Thành phần\HttpFoundation\BinaryFileResponse;

chức năng công khai buildApiDocumentation() {

  $file_system = \Drupal::service('file_system');

  $searchFiles = '/^.*\.(yml)$/';
  $directory = dirname(__DIR__,2).'/docs';

  $file = $file_system->scanDirectory($directory, $searchFiles, ['recurse' => FALSE]);

  trả về BinaryFileResponse ($file);
}
Mauricio avatar
lá cờ lb
Cảm ơn câu trả lời của bạn, nhưng điều tôi đang tìm kiếm là làm cách nào tôi có thể sử dụng trình định dạng để hiển thị tệp này, sử dụng trình định dạng mà mô-đun swagger_ui_formatter cung cấp. tôi cần kết xuất một yml giống như trang web vênh váo.
Jaypan avatar
lá cờ de
Tôi không biết mô-đun này, nhưng nếu nó có bộ định dạng trường, điều đó có nghĩa là dữ liệu có thể được lưu vào một trường. Bạn cần tạo một trường thuộc loại đó, lưu giá trị vào trường đó và đặt trường đó để hiển thị đầu ra bằng cách sử dụng trình định dạng trường đó.
Mauricio avatar
lá cờ lb
Cảm ơn @jaypan, tôi sẽ thử tạo nút này theo cách lập trình, đặt tệp và sau khi hiển thị tệp.
Điểm:0
lá cờ lb

như @apaderno đã đề cập, chúng tôi không thể sử dụng trình định dạng theo cách đó, sau đó tôi quyết định xây dựng mô-đun của riêng mình để hiển thị tài liệu vênh vang của mình bằng cách sử dụng vênh vang chính thức uivà tải tệp bằng chỉ thị javascript.

Cảm ơn vì đã giúp đỡ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.