2016-09-10 8 views
0

私の最初のSilexアプリケーションを作って助けが必要なので、アイテムを表示して編集するルートを書いていますので、まずはアイテムのコードを受け取ってその詳細を表示する私の 'get'ルートです。Silex 2で経路ルートを変える方法を教えてください。

だから、
$app->get('/cat/productos_edit/{key}', function($key) use($app){ 

$app['twig']->addGlobal('itemtoedit', $key); //This is how I'm trying to do it 

return $app['twig']->render('catalogo/productos/edit.html',[ 
    'title' => 'Catálogo - Productos' 
    ]); 
}); 

、私はアイテムを編集するために、その変数を取得する必要があります 'ポスト' ルートで

$app->post('/cat/productos_edit/', function() use($app){ 
    echo $app['itemtoedit']; 
})->bind('cat.productos.edit'); 

しかし、その後、私はこのエラーを得た:

Silex error

だから私は思いますおそらく私は何かを見逃している、ypuが私を助けることを望む。あなたがそれを行う必要があるIMHOよう

答えて

3

PHP /サイレックスは、あなたのGETとPOSTの間で任意のコンテキストを保持しません。

$app->post('/cat/productos_edit/{key}', function($key) use($app){ 
    // get your item from database with its key 
    // update item with your post payload 
})->bind('cat.productos.edit'); 
+0

をDefinetely、「トリック」は、あなたが取得するために使用さPOSTINGのURLで同じキーを使用することですそのアイテムに新しいデータをポストします。セキュリティチェックを行い、誰でも特定のURLにデータを投稿してアイテムを変更できるようにしてください! (これは、とりわけ、CSRFトークンが作成された理由です) – mTorres

+0

ありがとう、ええ、私はそのキーを保存する隠された入力を行うでしょう、私はすでにCSRFの保護を実装していることを確かめてください – DaveSanchez

+0

または、 cat.productos.edit 'をあなたの枝のテンプレート – seblucas

関連する問題