2017-03-09 6 views
0

Laravel 5.xでリレーションを持つデータベースからモデルを作成するにはどうすればいいですか?関係を持つlaravelでモデルを作成する

私はモデルを作成するには、このコマンドを使用していますが、それは、データベーススキーマにあるすべての関係を示している。

職人::コール(「メイク:モデル」、配列(「名」=>」モジュール/管理者/モデル/キャンペーン '));

+0

あなた自身であなたの関係を定義する必要があります:) – Christophvh

+0

https://laracasts.com/series/laravel-from-scratch-2017/episodes/7 –

+0

大規模なデータベースが存在する可能性があるのでたくさんの関係があります。 – subhajit

答えて

1

あなた自身の関係を傷つけなければならない、ララベルはそれを行うことはできません。

public function relation1() 
{ 
    $this->hasMany('CLASS_NAME', 'FK'); 
} 
0

すべてのブランドは、多くの製品を持っており、非常に製品が一つだけのブランドを持っている、ので、我々はこのケースでbrands.So多くの異なる製品が含まれて店を持っていると仮定しましょう、私は多くの関係1つを作成する必要があります。そこで、artisanコマンドを使用してモデルを作成しましょう。

php artisan make:model Product -m // "-m" creates tables for us. 
    php artisan make:model Brand -m   

ここで、関係を作成してみましょう。私はこのようにそれを読んで、このstatemetの過小を明確にするために関係

public function brand(){ 

     $this->belongsTo('App\Brand') ; 
    } 

のためのブランドの機能を作成しています「製品」モデルでは

。論理的に正しい場合は「製品belongsTo、ブランド」、正しいパスを使用してください。

同じロジックが逆関係のために有効ですが、それはすでに使われているので、私が関係

のためのブランドの機能を作成していた「と、多くの」 「ブランド」でモデルを使用する方が論理的であるように、この時間はあなたが、belongsToのを使用することはできません
public function products(){ 

     $this->hasmany('App\Product') ; 
    } 

「ブランドには多くの製品があります」と読んでください。

+0

はい、あなたがここに書いたのは書き込みですが、今はもっと多くの関係を含む200以上のテーブルのデータベースを持っています。今、私は1対1の関係をどうやって得ることができますか、それが各モデルの1対1であろうと何か他のものであればどうですか?モデルにこれらの関係を追加する方法はありますか?データベースからクラスを作成するときにHibernate(JAVA)のように、これらの関係を自動的に生成します。 – subhajit

関連する問題