2016-12-25 8 views
1

私はこの一日中、雄弁な関係を理解することを躊躇していましたが、ここで問題を投稿することにしました。データベースにエントリを保存しようとするとエラーが発生します。Laravel 5.3奇妙な列が見つかりません

見つかりませカラム: 'フィールドリスト' で1054不明な列 'アドレス'(SQL:invoicesaddressinvoiceuser_idupdated_atcreated_at)の値(3、2、1に挿入、2016-12- 25 23時34分44秒、2016年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'); 
} 

請求書テーブル

$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(); 

私は何をしようとしていることである:

  1. ユーザーは多くのアドレス(顧客アドレス)を持つことができ、多くの請求書
  2. ユーザーを持つことができます
  3. 請求書に1つのアドレスが割り当てられていますaddress_id(住所​​ - テーブルのID)
  4. 私が見つけた何

ADDRESS_IDに請求書モデルにアドレス機能を変更する()は私が正しく関係を理解し​​、次に起こることは、私は同じことを得ることである場合ただし、これは必要ではなく、問題を解決しますエラーが発生しましたが、「請求書」フィールドが表示されます。この時点で、間違った定義された関係が疑われます。助けてくれてありがとう。

+0

エラーは、データベースにアドレスフィールドがないことを示します。テーブルの請求書に列アドレスが存在するかどうかを調べるには、データベースをチェックしてください。 –

+0

テーブルは上記と全く同じです。Invoice-tableにはaddress_idフィールドがありますが、これは私が正しく達成しようとしているものにとって正しいはずですか? – Laravelnoobie

答えて

0

あなたはこのように外部キーフィールドを渡すことができます。

return $this->hasOne('App\Address', 'address_id'); 
+0

私は雄弁な文書で見たようにそれを試みましたが、私はまだ同じ同一のエラーを得るので、私にとってはうまくいきません。 – Laravelnoobie

1

エラーが予想されますが、アドレスではないADDRESS_IDを格納しているので、私は同じ問題に取り組んで、ここで私はそれをやった方法ですしていました。

$address = Address::create($address_data); 
$invoice_data['address_id'] = $address->id; 

これで、請求書テーブルに住所への参照が保存されます。

+0

変数$ address_dataはどこから来ますか? –

+0

参考のために、そのデータはあなたがアドレステーブルに挿入するデータだけです。 –

関連する問題