私は2つのモデルがあります:Laravel Eloquentで複数の一対一関係を指定する方法は?
Deal
- id
- seller
- buyer
- price
- date
Person
- id
- name
- balance
- email
Deal
モデルフィールドseller
とbuyer
がPerson
モデルインスタンスが含まれています。
Laravel雄弁で、このモデルを指定するための正しい方法は何ですか?
私はこのようにしています。データベース・スキーマ:
deals
- id: int, primary
- seller_id: int
- buyer_id: int
- price: decimal(10, 2)
- date: datetime
people
- id: int, primary
- name: string
- balance: decima(10, 2)
- email: string
雄弁モデルの定義:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'buyer' in 'field list'...
:
$seller = new Person();
$seller->name = 'Anna';
$seller->balance = 100500;
$seller->email = '[email protected]';
$buyer = new Person();
$buyer->name = 'Bob';
$buyer->balance = 9000;
$buyer->email = '[email protected]';
$deal = new Deal();
$deal->seller = $seller;
$deal->buyer = $buyer;
$deal->price = 99.99;
$deal->date = new Carbon();
$deal->save();
が、私はエラーを取得する:
class Deal extends Model
{
public function seller()
{
return $this->belongsTo(Person::class, 'seller_id');
}
public function buyer()
{
return $this->belongsTo(Person::class, 'buyer_id');
}
}
class Person extends Model
{
//
}
しかし、私は新しいDeal
インスタンスを作成しようとすると、
間違っている?
ありがとうございます!親インスタンスの取得はこのように '$ seller = $ deal-> seller'の働きをするので、同じ方法で作業することを期待しました。 – Finesse