Laravel Eloquent 未找到关系列

Laravel Eloquent Relation Column Not Found

我在 Laravel 中有两个模型 User 和 Order User 可以有很多 Orders 而一个 Order 只能有一个 User。

我已经定义了一对多关系,但在执行此查询时出现未知列错误:

App\Order::find(1)->users;

我正在使用 Laravel 最新版本。

//This is Order Model

class Order extends Model
{

    public function users()
    {
        return $this->hasOne(User::class);
    }
}


class User extends Authenticatable
{
  public function Order()
    {
        return $this->hasMany(Order::class);
    } 
}

尝试添加括号:

App\Order::find(1)->users()->get()

这应该可以解决您的错误。

每个订单属于一个用户将此添加到订单模型:

public function user()
{
    return $this->belongsTo(User::class);
}

并获取用户:

    App\Order::find(1)->users()->get()

对于 laravel 中的一对多关系,您必须按如下方式定义双方的关系:

用户模型

class User Model
{
  public function orders()
  {
    return $this->hasMany(Order::class);
  } 
}

现在我们必须定义上述关系的逆关系如下:

订购型号

class Order extends Model
{

 public function user()
  {
    return $this->belongsTo(User::class);
  }
}