未找到Laravel 5.3雄辩专栏
这一天我一直在努力理解这段雄辩的关系,现在我决定把我的文章发到这里。尝试在数据库中保存条目时出错 未找到列:1054“字段列表”中的未知列“地址”(SQL:插入未找到Laravel 5.3雄辩专栏,laravel,laravel-5,eloquent,laravel-5.3,Laravel,Laravel 5,Eloquent,Laravel 5.3,这一天我一直在努力理解这段雄辩的关系,现在我决定把我的文章发到这里。尝试在数据库中保存条目时出错 未找到列:1054“字段列表”中的未知列“地址”(SQL:插入发票(地址,发票,用户id,更新时间,创建时间)值(3,2,12016-12-25 23:34:442016-12-25 23:34:44)) InvoiceController public function postInvoiceDetails(Request $request) { $invoice = new Invoic
发票(地址,发票,用户id
,更新时间
,创建时间
)值(3,2,12016-12-25 23:34:442016-12-25 23:34:44))
InvoiceController
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');
}
地址模型
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');
}
发票型号
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();
地址表
$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();
我想做的是:
一个用户可以有许多发票
用户可以有多个地址(客户地址)
发票有一个地址,分配一个地址\u id(地址表中的id)
我发现:将发票模型中的address函数更改为address_id()解决了这个问题,但是如果我正确理解了关系,则不需要这样做,接下来发生的是,我得到了相同的错误,但现在是“Invoice”字段,此时我怀疑关系定义不正确。谢谢您的帮助。您可以像这样传递外键字段:
return $this->hasOne('App\Address', 'address_id');
错误是意料之中的,因为您存储的是地址而不是地址id,所以我处理过同一个问题,下面是我处理该问题的方法
$address = Address::create($address_data);
$invoice_data['address_id'] = $address->id;
现在,您正在发票表中存储对地址的引用。正如我在雄辩的文档中看到的那样,我确实尝试过,但是它对我不起作用,因为我仍然会遇到相同的错误。该错误表明您的数据库中没有地址字段。检查数据库,查看表invoices中是否存在列地址。表与上面发布的完全相同。发票表有一个address_id字段,该字段应该与我试图实现的是正确的,对吗?变量$address_数据来自何处?仅供参考,该数据只是您将插入到address表中的数据。