我想要做的就是了解什么时候应该使用 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()

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

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

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

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

10-11 08:04