2016-09-24 2 views
-1

現在、私はLaravelフレームワークに慣れようとしています。今のところはすべてがきれいに見える。しかし、私がLaravelに欠けていることが1つあるか、それをどうするか本当に見つけられませんでした。 symfonyにおいてエンティティベースのスキーマをLaravelで更新する

は、一つは次のようなエンティティを作成するためのオプションがあります。このファイルを作成した後

// src/AppBundle/Entity/Product.php 
namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="product") 
*/ 
class Product 
{ 
    /** 
    * @ORM\Column(type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @ORM\Column(type="string", length=100) 
    */ 
    private $name; 

    /** 
    * @ORM\Column(type="decimal", scale=2) 
    */ 
    private $price; 

    /** 
    * @ORM\Column(type="text") 
    */ 
    private $description; 
} 

、一つは単純に、たとえば、MySQLデータベースを更新するためにphp app/console schema:doctrine:update --forceを実行することができます。

LaravelがEloquent、モデル、および移行を使用しているため、データベースを適切に更新しています。しかし、Symfonyで使われている方法と同じように私のデータベースを更新する方法があるのでしょうか?コマンドを実行すると、作成したエンティティに基づいてデータベースが自動的に更新されます。

これはまったく可能ですか?

答えて

1

あなたが求めているのはネイティブに存在しません。

しかし、あなたが探しているannotation mappingを提供するための素晴らしいパッケージがあります。もちろん、これはそれ以上のものであり、実際には欠けている欠点をほとんど皆に与えてくれます。

You can find the package here

You can find the documentation here

ここでLaravelに教義からメタマッピングを使用した例です:答えのための

<?php 

use Doctrine\ORM\Mapping AS ORM; 

/** 
* @ORM\Entity 
* @ORM\Table(name="articles") 
*/ 
class Article 
{ 
    /** 
    * @ORM\Id 
    * @ORM\GeneratedValue 
    * @ORM\Column(type="integer") 
    */ 
    protected $id; 

    /** 
    * @ORM\Column(type="string") 
    */ 
    protected $title; 

    public function getId() 
    { 
     return $this->id; 
    } 

    public function getTitle() 
    { 
     return $this->title; 
    } 

    public function setTitle($title) 
    { 
     $this->title = $title; 
    } 
}  
+0

ありがとう!これは私が探しているものです。それに応じてLaravelがデータベースを更新する特別なコマンドがありますか? – Stan

関連する問題