php - 理解 Laravel 中的 hasOne() 和 belongsTo() 函数

标签 php mysql laravel orm relationship

我想做的就是了解我应该在什么时候使用 hasOne() 以及什么时候应该使用 belongsTo()。两者在我看来都是一样的。例如,这是我的模型:

use Illuminate\Database\Eloquent\Model;
use App\Categories;
use App\User;


class tickets extends Model
{
    protected $table = "tickets";

    public function category()
    {
        return $this->hasOne(Categories::class, 'id', 'category_id');
    }

    public function user()
    {
        return $this->hasOne(User::class, 'id', 'user_id');
    }
}

我也可以使用 belongsTo() 函数来做同样的事情。只是我应该将它们放入 usercategory 模型中。不管怎样,我什么时候应该使用 hasOne()belongsTo()

最佳答案

在处理一对多关系时,您将有一个 hasMany() 和一个 belongsTo()

我使用的经验法则是,如果一个表有一个外键(门票表有一个 user_id fk)那么这个模型 belongsTo 用户。 与类别相同。

所以你上面的例子,Ticket belongsTo User & Category

相反,User hasMany Ticket 和类似的Category hasMany 门票

关于php - 理解 Laravel 中的 hasOne() 和 belongsTo() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49841785/

相关文章:

MySQL别名简写?

laravel - 如何在 Docker 中使用 Laravel 队列监听

每个 GROUP BY 的 MySQL n 个结果,按计数排序

php - symfony 1.4 & Doctrine 1.2 - 几个表的一个模型

php - 创建 whois 查询的最佳方法是什么?

php - 使用 Bootstrap-Editable 时日期时间更新出错

php - Laravel 5.2 使用 .blade View 显示表格

php - 代码点火器错误 : variable references

mysql - 计算 MYSQL 中具有特殊条件的重复条目

mysql - 架构定义中的 SQL 日期格式