Wednesday, February 1, 2012

Re: request->is('post') v request->is('put')

AFAIK, PUT is the POST HTTP Request version of "edit" action... when you send data that u want to change something (not insert) you send a PUT request.

Att.,
--
Thiago Belem
Desenvolvedor
Rio de Janeiro - RJ - Brasil

+55 (21) 8865.9250
thiagobelem.net
contato@thiagobelem.net

Skype / gTalk » thiago.belem.web
LinkedIn » br.linkedin.com/in/thiagobelem/pt
Assando Sites
, curso de CakePHP » assando-sites.com.br


2012/2/1 McScreech <screech@sympatico.ca>
I'm trying to understand the use of the request->is method in the
CakePHP 2.0.4 baked actions. I have reduced the generated add and edit
functions from a controller baked with CakePHP 1.3.4 and 2.0.4 to
pseudo-code below to demonstrate my question. I am basing my
expectations on the opinion I derived from studying the template
scripts, the cookbook and the links below (among others).

The qualifier [ if (!empty($this->data)) ] in the old version is
replaced by BOTH of the following in the new version:
in add function:  [ if ($this->request->is('post')) ]
in edit function: [ if ($this->request->is('post') || $this->request-
>is('put')) ]

I see the difference between the two as they are but would expect the
following form:
in add function:  [ if ($this->request->is('post')) ]
in edit function: [ if ($this->request->is('put'))  ]

1) I think the is('post') portion of the edit function is redundant.
What is the intended functional difference between the two as they are
generated by CakePHP 2.0.4?

2) I am aware that the add view is generated _without_ the primary key
field that is included in the edit view. Does the presence/absence of
the primary key in the view served change the request/response
mechanism called?

Many TIA, McS

// 1.3.4 version of add():
if (!empty($this->data))
       create record
       if saved flash success; redirect; else flash failure;

// 2.0.4 version of add():
if ($this->request->is('post'))
       create record
       if saved flash success; redirect; else flash failure;

// 1.3.4 version of edit($id = null):
if (!$id && empty($this->data)) flash invalid; redirect;
if (!empty($this->data))
       if saved flash success; redirect; else flash failure;
else read $id

// 2.0.4 version of edit($id = null):
$this->Model->id = $id;
if (!$this->Model->exists()) exception invalid;
if ($this->request->is('post') || $this->request->is('put'))
       if saved flash success; redirect; else flash failure;
else read $id;

[1] http://book.cakephp.org/2.0/en/controllers/request-response.html
[2] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9#sec9.5
[3] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-16#section-7.5
[4] http://stackoverflow.com/questions/107390/whats-the-difference-between-a-post-and-a-put-http-request
[5] http://stackoverflow.com/questions/630453/put-vs-post-in-rest

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.
 
 
To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: