2011-10-20 32 views
5

Tôi đang cố chuyển một biến POST tới một trong các trình điều khiển của mình, tuy nhiên tôi đang làm điều này từ một trang tĩnh (tôi biết, không phải là cách sạch nhất và hiệu quả nhất Nhưng vì lợi ích của việc học ...). Làm thế nào tôi có thể đọc biến POST đó trong bộ điều khiển của tôi nếu dữ liệu POST đang được gửi mà không có biểu mẫu FormHelper?Lấy dữ liệu POST bằng CakePHP mà không formhelper

Tôi đang đăng dữ liệu bằng cách sử dụng jQuery ajax, do đó, điều này không có CakePHP gốc "FormHelper".

Điều này có hợp lý không? Hãy cho tôi biết nếu tôi cần phải xây dựng. Tôi đánh giá cao bất kỳ giúp bạn có thể cung cấp :)

Trả lời

6

Bạn sẽ có thể truy cập dữ liệu với:

$this->params['form']['YOUR_VARIABLE_NAME'] 

Và nếu bạn làm theo quy ước đặt tên sử dụng bởi các FormHelper và đặt tên cho lĩnh vực đầu vào của bạn như data[ModelName][FieldName], sau đó bạn có thể truy cập dữ liệu như bình thường với:

$this->data['ModelName']['FieldName'] 
6

Đừng quên Cake chỉ là PHP.

class BazController extends AppController { 

    function foo() { 
     $foo = $_POST['bar']; 
     $this->set('foobar', $foo); 
    } 

} 

hoàn toàn hợp lệ. Nhưng tôi sẽ làm như @dhofstet gợi ý vì nó "ngon hơn" nhiều.

0

Đối với CakePHP 2.x nó là

$this->request->data['ModelName']['field_name']; 

hoặc

$_POST['data']['ModelName']['field_name']; 

Tùy chọn đầu tiên được khuyến khích.

1

Bạn nên có thể truy cập vào bài mẫu dữ liệu với:

Đối với CakePHP 2.x

if ($this->request->is('post')) { 
    pr($this->request->data); 
} 

Đối với CakePHP 3.4.x

if ($this->request->is('post')) { 
    pr($this->request->getData()); 
} 

Hãy để tham khảo thêm , đọc hướng dẫn. Nó dễ dàng hơn nhiều và tốt hơn cho chính mình để tìm ra nó một mình.

Documentation for CakePHP 2.x

Documentation for CakePHP 3

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