Lost Posted Data On Restful Request

Hi everyone, I don’t know if this post fits better here or in an ExtJS forum.

I’m developing a web application using ExtJS for the views and Yii framework (my favorite) to manage interactions with the server.

I have in the ExtJS part:

- a model User (4 properties)

- a store Users with a Ext.data.proxy.Ajax with the following configuration

	proxy		: {

		type: 'ajax',


			create: 'index.php/user/create',

			read: 'index.php/user/index',

			update: 'index.php/user/update',

			destroy: 'index.php/user/delete',


		actionMethods: {

			create: 'POST',

			read: 'GET',

			update: 'POST',

			destroy: 'POST'


And in the Yii part I generated a webapp application. Then generated the model and CRUD for the User table in database and finally modified the UserController way of returning data so, instead of rendering views, echoes CJSON::encoded data.

This works perfect!!!.

But ExtJS has another type of proxy: Ext.data.proxy.Rest and the main feature of this one is the methods used for its actions

create: POST

read: GET

update: PUT

destroy: delete

So I configured my new proxy:

proxy : {

	type: 'rest',

	url: 'index.php/usuario', //all the actions requests this url

	//the actions methods are unnecesary


I saw a example with Silex and I liked the routing style so I’m trying to emulate it. With this in mind I configured the urlManager of the Yii application to handle the RESTful URL:




			array('user/index', 'pattern'=>'user', 'verb'=>'GET'),

			array('user/update', 'pattern'=>'user/<id:\d+>', 'verb'=>'PUT'),

			array('user/delete', 'pattern'=>'user/<id:\d+>', 'verb'=>'DELETE'),

			array('user/create', 'pattern'=>'user', 'verb'=>'POST'),



So, with just configuring the url in the proxy I delegate the routing to the urlManager. All is well!

But MY PROBLEM is that in actionCreate the $_POST variable, where the new user data should be is totally empty. Firebug reports that a ‘User’ named variable was posted.

Searching in an example of ExtJS I found this code:

$raw = ‘’;

$httpContent = fopen(‘php://input’, ‘r’);

while ($kb = fread($httpContent, 1024)) {

$raw .= $kb;


$params = json_decode(stripslashes($raw));

And the data is in $params but I don’t want to uglify my Gii auto generated code with this. I want to find the data in $_POST as always.

Any suggestions?

Sorry the long post but I wanted to give all the details I could.

Ok. it seems that no one can help me. My solution was create a code generation template for Gii that includes the code that reads from php://input.