2017-09-20 40 views
5

Tôi gặp vấn đề nhỏ khi làm việc trên một dự án nhỏ sử dụng Sonata nhưng tôi đang cố gắng tìm ra cách tùy chỉnh phạm vi ngày mà một người có thể chọn ngày, ví dụ từ ngày 1 tháng 1 năm 2000 đến ngày 31 tháng 12 năm 2020 Ai đó có thể cho tôi biết nơi tôi có thể tìm thấy nó trong tài liệu Sonata hoặc chỉ cho tôi làm thế nào để làm điều đó? Bởi vì tôi có một chút nhìn và tôi không có gì để hoàn toàn tùy chỉnh sự lựa chọn của ngày.Sonata Phạm vi ngày

Cảm ơn trước

Edit:

Trong tài liệu hướng dẫn symfony Tôi thấy điều này

'days' => range(1,31) 

đây: http://symfony.com/doc/current/reference/forms/types/date.html

Nhưng tôi không thể tìm thấy bất cứ điều gì trong doc sonata. Và không hoạt động như trên Symfony:/

Trả lời

3

Tôi giả sử bạn sử dụng trường sonata_type_date_picker trong Sonata. Tài liệu là here. Sau đó, trường hợp của bạn có thể được thực hiện như thế này:

->add('userDate', 'sonata_type_date_picker', [ 
    'dp_min_date' => 'Jan 1, 2000', //todo: date format here depends on your setup. Basicly it's the same format, you see in text field after you selected data in datepicker. 
    'dp_max_date' => 'Dec 31, 2020', 
]); 

Hoặc bạn có thể có ngày chọn với 3 Dropdowns - đó là tiêu chuẩn Symfony ngày lĩnh vực, hoạt động tốt với SonataAdmin:

->add('userDate', 'date', [ 
    'years' => range(2000, 2020), 
]); 

Tôi cũng muốn giới thiệu để thêm xác nhận phụ trợ với cùng các quy tắc (trong Thực thể):

/** 
* @var \DateTime() 
* 
* @Assert\Range(
*  min = "2000-01-01", 
*  max = "2020-12-31" 
*) 
*/ 
protected $userDate; 
+0

Cảm ơn, nhưng tôi đã sử dụng nhưng tôi không thể chọn chúng. Bây giờ nó giống như một khu vực văn bản trước khi tôi đang sử dụng -> thêm ('userDate', 'date', ....) và tôi đã có thể chọn nó. Người dùng dễ dàng hơn. Bạn có biết làm thế nào tôi có thể làm điều đó với 'sonata_type_date_picker' – Jeremy

+1

Vì vậy, bạn có muốn 3 trình đơn thả xuống hoặc bộ chọn ngày không? Trong trường hợp bộ chọn ngày, bạn sẽ thấy đầu vào văn bản. Bạn cần thêm một số JavaScript vào trang (có thể được thực hiện thông qua cấu hình) và sau đó bạn sẽ thấy datepicker ngoài nhập văn bản. –

+0

Nếu nó có thể có một thả xuống 3 nó sẽ được hoàn hảo – Jeremy

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