2017-11-21 14 views
0

私はsettable()メソッドを使い、relashionshipからデータを取得しようとしています。ここに私のモデルは以下のとおりです。コントローラーでLaravel EloquentとrelationshipsのsetTable()

class Order extends Model 
{ 
    public function list(){ 
     return $this->hasMany('App\Models\List'); 
    } 
} 
class List extends Model 
{ 
    public function order(){ 
     return $this->belongsTo('App\Models\Order', 'order_id'); 
    } 
} 

、私は選択の前にテーブルを設定します。

$this->list->setTable("user_".auth()->user()->id."_lists"); 
$users = $this->list->where('order_id', $id)->with('Order')->get(); 

問題がある:設定可能()メソッドを正しくリストテーブルを設定しますが、どのようにすることができますすることができますwith()メソッドはデフォルトのordersテーブルしか取得しないので、ordersテーブルを正しく設定しましたか?例:ordersテーブルはユーザ_ {$ id} の注文で、リストテーブルはユーザ {$ id} _lists

答えて

1

でなければなりません。私にとって正直言ってそれは意味がありません。 1000人のユーザーがいる場合は、注文のための1000のテーブルとリストのための1000のテーブルがありますか?あなたはむしろデータベース設計を考え直すべきです。

+0

私はオーケストラパッケージからマルチテナントを使用しています。これは、期待どおりに多くのユーザーを持っていません。 – Clayton

+0

@Claytonそれはまだ悪い習慣です。お勧めしません。 –

+0

このケースのベストプラクティスは何ですか? – Clayton

関連する問題