2017-01-06 2 views
0

これで、Commandeという1つのエンティティがあります。属性: タイター、 アルテール、 カテゴリ、 Editeur、 Prix。APIを使用してデータを保持する方法JSON SYMFONY 3

symfony 3のAPI REST jsonを作成して、どのAndroidデバイス(Androidなど)でもこのエンティティ内のデータを保持できるようにしたいと思います。

例えば、私のRestControllerでは、このコードは私が別のEnityから件のデータを回復することを許可する:Livres

<?php 

namespace BiblioBundle\Controller; 

use FOS\RestBundle\Controller\Annotations\View; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\Security\Core\Exception\AccessDeniedException; 

class BiblioRestController extends Controller 
{ 
public function getListeAction(){ 
$Livres = $this->getDoctrine()->getRepository('BiblioBundle:Livres')->findAll(); 
if(!$Livres){ 
    throw $this->createNotFoundException(); 
} 
return $Livres; 
} 
} 

APIの住所は次のとおりです。http://127.0.0.1:8000/api/liste.json

は、どのようにそれを行うには? Thx。

Commande.php:

<?php 

namespace BiblioBundle\Entity; 
use Doctrine\ORM\Mapping as ORM; 
use JMS\Serializer\Annotation\ExclusionPolicy; 
use JMS\Serializer\Annotation\Expose; 
use JMS\Serializer\Annotation\Groups; 
use JMS\Serializer\Annotation\VirtualProperty; 
use JMS\Serializer\Annotation\Type; 

/** 
* Commande 
* @ORM\Table(name="commande") 
* @ORM\Entity(repositoryClass="BiblioBundle\Repository\CommandeRepository") 
* 
* @ExclusionPolicy("all") 
*/ 
class Commande 
{ 
/** 
* @var int 
* @ORM\Column(name="Id", type="integer") 
*/ 
private $id; 

/** 
* @var string 
* @ORM\Column(name="Titre", type="string", length=80) 
* @Expose 
*/ 
private $titre; 

/** 
* @var string 
* @ORM\Column(name="Auteur", type="string", length=50) 
* @Expose 
*/ 
private $auteur; 

/** 
* @var string 
* @ORM\Column(name="Categorie", type="string", length=60) 
* @Expose 
*/ 
private $categorie; 

/** 
* @var string 
* @ORM\Column(name="Editeur", type="string", length=70) 
* @Expose 
*/ 
private $editeur; 

/** 
* @var string 
* @ORM\Column(name="Prix", type="string", length=30) 
* @Expose 
*/ 
private $prix; 


/** 
* Get id 
* 
* @return int 
*/ 
public function getId() 
{ 
    return $this->id; 
} 

/** 
* Set titre 
* 
* @param string $titre 
* 
* @return Commande 
*/ 
public function setTitre($titre) 
{ 
    $this->titre = $titre; 

    return $this; 
} 

/** 
* Get titre 
* 
* @return string 
*/ 
public function getTitre() 
{ 
    return $this->titre; 
} 

/** 
* Set auteur 
* 
* @param string $auteur 
* 
* @return Commande 
*/ 
public function setAuteur($auteur) 
{ 
    $this->auteur = $auteur; 

    return $this; 
} 

/** 
* Get auteur 
* 
* @return string 
*/ 
public function getAuteur() 
{ 
    return $this->auteur; 
} 

/** 
* Set categorie 
* 
* @param string $categorie 
* 
* @return Commande 
*/ 
public function setCategorie($categorie) 
{ 
    $this->categorie = $categorie; 

    return $this; 
} 

/** 
* Get categorie 
* 
* @return string 
*/ 
public function getCategorie() 
{ 
    return $this->categorie; 
} 

/** 
* Set editeur 
* 
* @param string $editeur 
* 
* @return Commande 
*/ 
public function setEditeur($editeur) 
{ 
    $this->editeur = $editeur; 

    return $this; 
} 

/** 
* Get editeur 
* 
* @return string 
*/ 
public function getEditeur() 
{ 
    return $this->editeur; 
} 

/** 
* Set prix 
* 
* @param string $prix 
* 
* @return Commande 
*/ 
public function setPrix($prix) 
{ 
    $this->prix = $prix; 

    return $this; 
} 

/** 
* Get prix 
* 
* @return string 
*/ 
public function getPrix() 
{ 
    return $this->prix; 
} 
} 
+1

のようなものを探していますされていますか?何を試しましたか?これに対する答えは非常に多くのコードになる可能性があります... –

+0

外部デバイスまたはプログラム(Android、Postman)がデータを保持できるようにするrestControllerにAPI RESTを作成するための構文が何であるか知りたいだけです。それだけ 。完全なコードではありません –

+1

[FOSRestBundle](http://symfony.com/doc/current/bundles/FOSRestBundle/index.html)を見ましたか? –

答えて

1

すべてがdocs

にだから何あなたが探しているが、あなただけの提案を

$commande = new Commande(); 
$commande->setAuthor('john doe'); 
//... use the rest of your setters as needed 
$em = $this->getDoctrine()->getManager(); 
$em->persist($commande); 
$em->flush(); 
return new Response('Saved new commande with id '.$commande->getId()); 
+0

Thxですが、これはsymfony 3を使用してオブジェクトのデータを保持する方法です。しかし、私はAPIのRest形式のjsonを介して、メソッドポストなどで永続したいとします。 –

+0

私の悪い、申し訳ありませんが、あなたの助けを借りて、ソリューションを見つけました –

+0

このスレッドを完了するために、ソリューションを投稿してください。 – RichieHH

関連する問題