私はページ(webixデータテーブル)で使用するデータテーブルについて、REST APIを使用する必要があります。 GETメソッドでphp/symfony:POST/PUT apiのURLの属性を取得する
save: "rest->{{ path('api_i_post') }}",
url: "rest->{{ path('erp_interventionapi_get', { trialid: trial.id })
、私は裁判(/裁判/ 1のために取得:以下、私が使用するAPI呼び出しを行うために、このページではhttp://localhost:8000/trial/1
:
私のurlは、たとえばあります)、データベースからロードされ、データテーブルに埋め込まれた多くの介入。
このデータテーブルを使用すると、「新しい行を追加する」ことができます。
新しい行を追加すると、自動的にフィールドtrial_idを入力できるようにしたいと思います(POSTメソッドを使用しています(「rest-> {{path( 'api_i_post')}}」) (/ trial/1、trial_id = 1の)データテーブルに新しい行を追加する場所によって異なりますが、POSTおよびPUTでこの属性(または試行オブジェクトID)を取得する方法はわかりません。
マイpostActionは:
/**
* @Rest\Post("/api_i/", name="api_i_post")
*/
public function postAction(Request $request)
{
$data = new Intervention;
$id = $request->get('id');
$action = $request->get('action');
$daadala = $request->get('daadala');
$date = $request->get('date');
$week = $request->get('week');
$infopm = $request->get('info_pm');
$comment = $request->get('comment');
$location = $request->get('location');
$trial = $request->get('trialid');
$data->setAction($action);
$data->setDaadala($daadala);
$data->setDate($date);
$data->setWeek($week);
$data->setWho($infopm);
$data->setInfoPm($comment);
$data->setComment($location);
$data->setTrial($trial);
$em = $this->getDoctrine()->getManager();
$em->persist($data);
$em->flush();
$lastid = $data->getId();
$response=array("id" => $id, "status" => "success", "newid" => $lastid);
return new JsonResponse($response);
$view = View::create(array("newid" => $lastid, "id" => $id, "status" => "success"));
return $this->handleView($view);
}
そして、私のputAction
/**
* @Rest\Put("/api_i/{id}")
*/
public function putAction(Request $request)
{
$data = new Intervention;
$id = $request->get('id');
$action = $request->get('action');
$daadala = $request->get('daadala');
$date = $request->get('date');
$week = $request->get('week');
$infopm = $request->get('info_pm');
$comment = $request->get('comment');
$location = $request->get('location');
$sn = $this->getDoctrine()->getManager();
$intervention = $this->getDoctrine()->getRepository('ErpBundle:Sponsor')->find($id);
if (empty($intervention)) {
return new View("Sponsor not found", Response::HTTP_NOT_FOUND);
}
$intervention->setAction($action);
$intervention->setDaadala($daadala);
$intervention->setDate($date);
$intervention->setWeek($week);
$intervention->setWho($infopm);
$intervention->setInfoPm($comment);
$intervention->setComment($location);
$sn->flush();
$response=array("id" => $id, "status" => "success");
return new JsonResponse($response);
}
は、あなたがこの問題で私を助けることができますか?
割引:: - > {{パス「残り私は、この私の小枝テンプレートの更新を持って
:
はあなたにreplys後の私のコードの非常に
更新をありがとう( 'api_i_post'、{trialid:trial。ID})}}」、私はAJAXリクエストのプロファイラで見れば
が、私はそれを見るにはここにある:
キー値
TRIALID "1"
私は依然として私の投稿依頼でそれを取得する方法を理解していません(trial_idはまだnullです)
lowing:
/**
* @Rest\Post("/api_i/", name="api_i_post")
* @Rest\RequestParam(name="trialid")
*
* @param ParamFetcher $paramFetcher
* @param Request $request
*/
public function postAction(Request $request, ParamFetcher $paramFetcher)
{
$data = new Intervention;
$id = $request->get('id');
$action = $request->get('action');
$daadala = $request->get('daadala');
$date = $request->get('date');
$week = $request->get('week');
$infopm = $request->get('info_pm');
$comment = $request->get('comment');
$location = $request->get('location');
$trial = $paramFetcher->get('trialid');
$data->setAction($action);
$data->setDaadala($daadala);
$data->setDate($date);
$data->setWeek($week);
$data->setWho($infopm);
$data->setInfoPm($comment);
$data->setComment($location);
$data->setTrial($trial);
$em = $this->getDoctrine()->getManager();
$em->persist($data);
$em->flush();
$lastid = $data->getId();
$response=array("id" => $id, "status" => "success", "newid" => $lastid);
return new JsonResponse($response);
$view = View::create(array("newid" => $lastid, "id" => $id, "status" => "success"));
return $this->handleView($view);
}
お返事ありがとう!私はこの方法で取得したIDはデータベースの介入のIDだと思います。私は、データベースの試行(データベースの介入で関係する試行ID)のIDを取得しようとしています。試用版IDはURLのID(またはこのページの試用版)です。これは私の投稿要求に追加するのに苦労しているものです。どんな手掛かり? – jonibegoode
例えばputの内部に自動的にurlで取られた宣言パラメータ$ idの中に@jonibegoodeを追加しました –