2016-09-18 13 views
1

ユーザーがデータベースに役割を持っているかどうかを確認しようとすると問題が発生します。私はそれをモデルの外で行うとうまくいきますが、モデルで行う必要がある何らかの理由で「非オブジェクトのプロパティを取得しようとしています」というエラーが表示されます。ここに私のコードです:非オブジェクトのプロパティを取得しようとしています。 Laravel 5.2

public function owed_amount() { 
    $user_total = $this->total_expenses(); 
    $expenses = Expense::where('removed', false)->get(); 
    $total = 0; 
    foreach ($expenses as $expense) { 
     $total += $expense->amount; 
    } 
    $total_users = 0; 
    $users = User::get(); 
    foreach ($users as $user) { 
     if($user->has_role('is-payee')) //Error comes from here! 
     { 
     $total_users++; 
     } 
    } 
    $paid_in = $this->total_paid_in(); 
    $got_paid = $this->total_got_paid(); 

    $owed = $user_total - $total/$total_users + $paid_in - $got_paid; 
    return number_format($owed, 2); 
    } 

public function has_role($data) { //Checking for role in database 
    $perm = Permission::where('data', $data)->first(); 
    $ptg = PermissionToGroup::where([ 
     'group_id' => $this->usergroup->id, 
     'perm_id' => $perm->id 
    ])->first(); 
    if($ptg===NULL){ return false; } 
    else{ return true; } 
    } 

あなたの助けに感謝!

+0

ための結果があるかどうかを確認しなければならない=許可::場所(「データ」、$データ) - >最初の(); –

+0

私はと思ったが、私は、データベースをダブルチェックし、それは間違いなく – Imphusius

+0

あなたは、エラーに関する詳細な情報を与えることができる存在、私はあなたのコード –

答えて

2

あなたは$パーマのため、結果がない場合はどうすれば$パーマ

public function has_role($data) { //Checking for role in database 
    $perm = Permission::where('data', $data)->first(); 
    if($perm) { 
     $ptg = PermissionToGroup::where([ 
     'group_id' => $this->usergroup->id, 
     'perm_id' => $perm->id 
     ])->first(); 
     if($ptg===NULL){ return false; } 
     else{ return true; } 
    } 
    else 
    return false; 
    } 
関連する問題