2011-03-12 14 views
6

के लिए एक फार्म जमा करने मैं add.ctp में इस राशिCakePHP सही कार्रवाई

function add(){ 
    if (!empty($this->data)) { 
     if($this->Post->save($this->data)){ 
      $this->Session->setFlash('Your post has been saved'); 
      $this->redirect(array('action' => 'index')); 
     } 
    } 
} 

मेरा प्रश्न कैसे CakePHP पता है यह है कि जब उपयोगकर्ता हिट नियंत्रक में "add" फ़ंक्शन में "डेटा" भेजने के लिए सबमिट करें?

+0

आपको मेरी पीएचपी टैग की अनुमति नहीं दी? मेरे पास अनदेखा पर PHP है। – stefan

+0

मैंने कुछ भी अस्वीकार कर दिया है :) – benhowdle89

+0

अजीब, मैंने इसे फिर से जोड़ा;) – stefan

उत्तर

8

डिफ़ॉल्ट रूप से केकेपीएचपी फॉर्म को उसी क्रिया में भेज देगा जो इसे प्रदर्शित करता है।

आप ध्यान में रखते हुए इसे बदल सकते हैं इस प्रकार है:

echo $form->create('Post', array('action' => 'whatever')); 
+1

यह 2.x और 3.x –

+1

में बहिष्कृत चेतावनी दिखाता है यह चेतावनी नवीनतम केक के लिए है, यूआरएल के साथ कार्रवाई को प्रतिस्थापित करें। @dav के उत्तर का पालन करें –

8

या आप अद्यतन वाक्य रचना के अनुसार इस

echo $form->create('Post', array('url' => '/controller_name/action_name'));

0

उपयोग कर सकते हैं यदि आप किसी अन्य नियंत्रक पर रीडायरेक्ट करने के साथ-साथ चाहते हैं नीचे (CakePHP 2.4.x) काम करेगा:

echo $this->Form->create('RegistrationsInout', array('action' => 'startroom')); 
0

CakePHP 3.x

$this->Form->create('Post', ['url' => ['action' => 'post']]); 

के लिए देखें doc