1
私たちには、顧客へのセールスおよびセールスリンクにリンクするペイメントテーブルがあります。 PaymentsテーブルからClients関係にリンクする正しい方法は何ですか?別のモデルからリレーションシップを引き出す正しい方法ですか?
Payments.sale_id - > Sales.id Sales.client_id - > Client.id
私が試した:
sale_idが満たされたときに正常に動作しますclass Payment extends Model {
public function sale() {
return $this->belongsTo('\\App\\Models\\Sale', 'sale_id');
}
public function client() {
return $this->sale->client();
}
}
。しかし、sale_idがNULLの場合、これは中断します(明らかに、$ this-> saleはnullのためです)。
私はまだ$client
プロパティ/属性によるアクセスを可能にするLaravelのソリューションをしたいと思います。致命的なエラーを回避するために
待っていますが、 'Sale'がなくても' Client'を取得できますか? – bishop
'Payment :: $ client'がアクセスされた場合、致命的なエラーを引き起こしたくありません。この属性は、 'client()'がbelongsToオブジェクトを返すことを要求します。 – Devon
あなたは 'Many Many Through'関係を利用することができます。==> [Doc](https://laravel.com/docs/5.1/eloquent-relationships#has-many-through) – Maraboc