我一直在理解这一天雄辩的关系,现在我决定在这里发布我的问题。我在尝试保存数据库中的条目时遇到错误。
找不到列:1054'字段列表'中的未知列'地址'(SQL:插入
authenticated
(invoices
,address
,invoice
,{{1 },user_id
)值(3,2,1,2016-12-25 23:34:44,2016-12-25 23:34:44))
InvoiceController
updated_at
用户模型
created_at
地址模型
public function postInvoiceDetails(Request $request)
{
$invoice = new Invoice();
$invoice->address = $request['customer-address'];
$invoice->invoice = $request['invoice-number'];
$request->user()->invoices()->save($invoice);
}
发票模型
public function addresses()
{
return $this->hasMany('App\Address');
}
public function invoices()
{
return $this->hasMany('App\Invoice');
}
发票表
public function user()
{
return $this->belongsTo('App\User');
}
地址表
public function user()
{
return $this->belongsTo('App\User');
}
public function address()
{
return $this->hasOne('App\Address');
}
我想做的是:
我发现:将Invoice-model中的地址功能更改为 address_id()解决了这个问题,但如果我理解正确的关系,接下来会发生什么,那就不需要了得到相同的错误,但现在使用“发票”字段,此时我怀疑定义不明确的关系。谢谢你的帮助。
答案 0 :(得分:1)
错误是预期的,因为你存储的地址不是address_id,我曾经解决过同样的问题,这就是我做的方式。
$address = Address::create($address_data);
$invoice_data['address_id'] = $address->id;
现在您要在发票表中存储对地址的引用。
答案 1 :(得分:0)
您可以像这样传递外键字段:
return $this->hasOne('App\Address', 'address_id');