关系将外键视为整数,而不是varchar

时间:2018-04-02 19:51:18

标签: laravel eloquent

我在postgres数据库中有一个表和一个视图:customer表和cust_address_view视图。连接这两个是名为customer_id的id列。当我在customercustomerAddress中声明关系时,它会将customer_id视为一个整数(或者至少它会将前导零点斩掉)找不到记录。

我声明了这样的关系:

public function customerAddress()
{
    return $this->hasMany('App\CustomerAddress' , 'customer_id', 'customer_id');
}

对于客户ID 012345,我在调试栏中看到了此查询:

select * from "cust_address_view" where "cust_address_view"."customer_id" = '12345' and "cust_address_view"."customer_id" is not null

这是一个问题,其中一个是视图而不是两个都是一个表吗?

1 个答案:

答案 0 :(得分:2)

Customer课程中,您要指定customer_id无法递增(即不是整数)

class Customer extends Model
{
    ...
    public $incrementing = false;
    ...
}

这应该告诉Laravel不要使用整数来查找客户。