2016-11-05 49 views

答えて

0

まず、あなたは従業員モデル/ DBの「のcompany_id」と「USER_ID」列を持っているのですか?

とにかく、代わりにこのクエリを試すことができます。関係を作成するとき

$recordsTotal = User::whereHas('employee', function ($q) use ($company_id) { 
    $q->where('company_id', $company_id); 
})->count(); 
+1

あなたのクエリ作品!ありがとう!! – user3844579

0

あなたが名前空間全体またはUser ::クラスのようなクラスを参照する必要が

+0

名前空間が参照されています – user3844579

0

あなたがその主キーと地元の一定の関係にモーダル::クラスを宣言することができる関係を使用して

class Company extends Model { 
    public function employees() { 
     return $this->hasMany(Employee::class, 'company_id'); 
    } 
} 

これはのcompany_idのEmployeeテーブルの列または何を従業員モーダル内に設定されているこれまでの表を参照します。たとえば、あなたが持っていることができるように、両方のテーブルのキーは、正しい値を参照します。

またFOREIGN_KEY、そのような関係にlocal_key渡すことができます。同様の例は以下のようになり

class Company extends Model { 
    public function employees() { 
    return $this->hasMany(Employee::class, 'foreign_key', 'local_key'); 
    } 
} 

を:

class Company extends Model { 
    public function employees() { 
    return $this->hasMany(Employee::class, 'company_id', 'company_id'); 
    } 
} 

データベースの構造に応じて、あなただけの合格することができるはずmodal ::クラスを関係に追加することはできますが、正確なデータベース構造やキー/識別子の設定方法を知らなくても、完全な実例を与えるのは難しいです。例えば、idやcompany_idという名前のプライマリキーです。その構造に応じて、このショットを与えることができます。

class Company extends Model { 
public function employees() { 
    return $this->hasMany(Employee::class); 
} 

}

()アレイの上のいずれかのループにコレクションを返すときも覚えていたり、単純に$会社 - >従業員を使用する - )>最初に( - 別のオプションを使用することです)>(取得配列の最初のレコードを使用するget()の代わりに。

私は決して熟練者ではなく、自分自身もラーベルを学んでいるわけではありません。また

ここで見てみる価値がある:Laravel Docs (Eloquent: Relationships)