User
は、Auctions
を生成することができ、Auctions
は、付加的なPurchase
を有することができる。Laravel Eloquent relationが列を上書きしますか?
私はすべてPurchases
(HEがSOLD 1 - このユーザーがAuction
を作成し、他の誰かがそれを購入した)を取得したいAuctions
テーブルを経由して参照することにより、1 User
から:
オークション id | user_id
購入 id | user_id | auction_id
マイAuctions
テーブルが同じ名前を持つ列user_id
を、持っていますテーブルPurchases
の列user_id
。
私はこのようhasManyThrough
方法で、すべてのPurchases
を取得することができます考えた:
ユーザーモデル:
public function sold_purchases()
{
return $this->hasManyThrough(
'App\Purchase', 'App\Auction'
);
}
それは予想のほぼとして動作しますが:
フィールドuser_id
フェッチの結果から、 Auction
から常にuser_id
があり、それはデータベースにあるように正しいuser_id
ではなく参照されています(テーブルPurchase
。彼らは同じ名前を持っているので、私は何とかこれは混乱すると思う。
これらの列の1つに同義語を付ける方法はありますか?それとも別のことをやっているのですか?
整合性制約違反:注文句の1052列「のcreated_at」は曖昧です。私はおそらくすべてのタイムスタンプを取得します。私は '' auctions.created_atをauction_created_at ''として成功させずに追加しようとしました。とにかくこの答えは正しい方向に進みます – 4ndro1d
もう1つの 'purchase_user'を購入モデルに追加し、オークションにcreate.created_atを追加することによって解決しました。また、purchases.created_at – 4ndro1d
も検索されたオブジェクト変数にアクセスできません$ purchase-> purchase_user ['name']のようなものです。(名前を使用しないでください) – 4ndro1d