在 laravel 中使用关系创建模型
Posted
技术标签:
【中文标题】在 laravel 中使用关系创建模型【英文标题】:Create model in laravel with relations 【发布时间】:2017-07-30 03:17:58 【问题描述】:如何在 Laravel 5.x 中使用关系从数据库创建模型?
我正在使用此命令创建模型,但它显示了数据库架构中的任何关系:
Artisan::call('make:model', array("name"=>'Modules/Admin/Models/Campaign'));
【问题讨论】:
你必须自己定义你的关系:) laracasts.com/series/laravel-from-scratch-2017/episodes/7 我认为应该有办法解决,因为可能会有一个包含大量关系的大型数据库。 【参考方案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) 中一样,在从数据库创建类时,它会自动生成这些关系。以上是关于在 laravel 中使用关系创建模型的主要内容,如果未能解决你的问题,请参考以下文章