这一天我一直在努力理解这段雄辩的关系,现在我决定把我的文章发到这里。尝试在数据库中保存条目时出错。
未找到列:1054“字段列表”中的未知列“地址”(SQL:插入发票
(
地址
,
发票
,
用户id
,更新时间
,创建时间
)值(3,2,12016-12-25 23:34:442016-12-25 23:34:44))
发票控制员
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');
}
发票表
$table->increments('id');
$table->integer('user_id');
$table->integer('address_id');
$table->integer('invoice_number');
$table->timestamps();
地址表
$table->increments('id');
$table->integer('user_id');
$table->text('address');
$table->timestamps();
我想做的是:
我发现:在发票模型中更改地址函数address_id()解决了这个问题,但是如果我正确地理解关系,就不需要这样做,接下来发生的是,我得到了同样的错误,但是现在有了发票字段,在这一点上我怀疑关系定义不好。感谢任何帮助。
错误是意料之中的,因为您存储的是地址而不是地址id,所以我处理过同一个问题,下面是我处理该问题的方法。
$address = Address::create($address_data);
$invoice_data['address_id'] = $address->id;
现在,您正在发票表中存储对地址的引用。
您可以像这样传递外键字段:
return $this->hasOne('App\Address', 'address_id');