【发布时间】:2017-05-10 13:40:27
【问题描述】:
我一整天都在努力理解雄辩的关系,现在我决定在这里发布我的问题。尝试在数据库中保存条目时出现错误。
找不到列:1054 '字段列表'中的未知列'地址'(SQL:插入
invoices(address,invoice,user_id,updated_at,created_at)值(3 , 2, 1, 2016-12-25 23:34:44, 2016-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)
我发现:将 Invoice-model 中的地址函数更改为 address_id() 解决了这个问题,但是如果我正确理解了关系并且接下来发生的事情是我得到相同的错误,但现在使用“发票”字段,此时我怀疑关系定义不正确。感谢您的帮助。
【问题讨论】:
-
该错误表明您的数据库中没有地址字段。检查数据库以查看表 invoices 中是否存在列地址。
-
表格与上面发布的完全相同。 Invoice-table 有一个 address_id 字段,这对于我想要实现的目标应该是正确的吗?
标签: laravel laravel-5 eloquent laravel-5.3