【问题标题】:Create model in laravel with relations在 laravel 中使用关系创建模型
【发布时间】:2017-07-30 03:17:58
【问题描述】:

如何在 Laravel 5.x 中使用关系从数据库创建模型?

我正在使用此命令创建模型,但它显示了数据库架构中的任何关系:

Artisan::call('make:model', array("name"=>'Modules/Admin/Models/Campaign'));

【问题讨论】:

标签: mysql laravel model


【解决方案1】:

你必须自己定义你的关系,laravel 不能为你做这件事。

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

【讨论】:

    【解决方案2】:

    假设我们有一个商店,其中包含许多不同品牌的产品。所以在这种情况下,我需要创建一对多关系,因为每个品牌都有很多产品,而每个产品只有一个品牌。所以让我们创建我们的通过使用工匠命令模型。

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

    让我们建立关系;

    在“产品”模型中,我正在为关系创建品牌功能

       public function brand (){
    
            $this->belongsTo('App\Brand')  ;
      } 
    

    为了清楚地理解这个声明,请这样阅读。 “产品属于,品牌”,如果它在逻辑上是正确的,而不是你在正确的道路上。

    相同的逻辑对反向关系有效,但这次你不能使用 belongsTo 因为它已经被使用过,所以使用“has many”更合乎逻辑 在“品牌”模型中,我正在为关系创建品牌功能

       public function products(){
    
            $this->hasmany('App\Product')  ;
      } 
    

    读作“品牌有很多产品”。

    【讨论】:

    • 是的,你在这里写的是 write ,但现在我有 200 多个包含更多关系的表的数据库。现在我怎样才能得到一对一的关系,或者它是一对多的关系,或者每个模型中的其他东西? Laravel 中是否有任何方法可以在模型中添加这些关系?就像在 Hibernate (JAVA) 中一样,在从数据库创建类时,它会自动生成这些关系。
    猜你喜欢
    • 2017-03-21
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2020-03-09
    • 2020-03-30
    相关资源
    最近更新 更多