我正在尝试执行一个查询来获取 ordercard 充电,但出现错误。

卡片型号:

class Card extends Eloquent {
    protected $guarded = array();

    public static $rules = array();

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

    public function orders()
    {
        return $this->hasMany('Order');
    }
}

订购型号:

class Order extends Eloquent {
    protected $guarded = array();

    public static $rules = array();

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

    public function card()
    {
        return $this->hasOne('Card');
    }

    public function address()
    {
        return $this->belongsTo('Address');
    }

    public function orderItems()
    {
        return $this->hasMany('OrderItem');
    }
}

我想找回的:

$order = Order::with('card')->find($id);

这显然行不通,我已经尝试了几种组合。我认为问题出在我的模型/关系上。

知道如何使用卡/令牌详细信息取回订单吗?

数据库信息:每个订单只能有一个 card_id 并且每张卡可以有多个顺序。没有 order_id 在卡中。

订单表基本上:

id | card_id

卡牌表:

id | token

试图获得 token col 返回 Order.

有帮助吗?

解决方案

在你的 Order 模型,您需要更改此:

public function card()
{
    return $this->hasOne('Card');
}

对此:

public function card()
{
    return $this->belongsTo('Card');
}

原因是您正在定义的逆 hasMany 关系。随着 belongsTo 关系,Eloquent 会寻找一个 card_id 列于 orders 桌子。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top