2013-06-04 43 views
6

Giả sử mã ngây thơ sau:Xử lý các tham số GET phức tạp với Slim Khung HTTP định tuyến

$app->get('(/store(/:url)+)', function($url = NULL) use ($app) 
    { 
     // Execute actions on $url 
    }); 

Trên đây hoạt động tốt sau:

http://localhost/api/0001/store/url-data 

Nhưng nó không cho:

http://localhost/api/0001/store/http%3A%2F%2Fexample.com%2FSomething 
http://localhost/api/0001/store/http://example.com/Something 

// and other variations 

Tôi muốn chuyển URI được mã hóa đầy đủ để xử lý ở phía máy chủ. Làm thế nào tôi có thể quản lý để làm điều đó với Slim?

Ghi chú:

Các loại yêu cầu HTTP (POST, PUT) sẽ không làm việc cho vấn đề được đưa ra này.

Nó có thể được giải quyết ở đầu bên kia bằng cách định dạng lại (tuần tự hóa) URI, nhưng tôi muốn đây là phương sách cuối cùng của tôi.

quan trọng Edit - trả lời

Vì vậy, nó quay ra ở trên là một lỗi trong khuôn khổ mà hiện đang được thử nghiệm và hy vọng cố định và công bố sớm. Tôi đã giải quyết vấn đề tạm thời bằng cách tuần tự hóa URI trước khi nó đến phía máy chủ.

+3

Bạn được phép trả lời các câu hỏi của riêng mình và chấp nhận câu trả lời của riêng bạn^_^ –

+1

Việc chuyển url dưới dạng phân khúc của url ổn định không phải là giải pháp tốt nhất ... Thay vào đó, tôi khuyên bạn nên sử dụng tham số get. –

Trả lời

0

Vì vậy, hóa ra ở trên là lỗi trong khuôn khổ hiện đang được thử nghiệm và hy vọng được khắc phục và phát hành sớm. Tôi đã giải quyết vấn đề tạm thời bằng cách tuần tự hóa URI trước khi nó đến phía máy chủ.

Các vấn đề liên quan