2016-06-21 12 views
2

私はEloquent hasOneを使用して、ユーザーがWebサイトに登録し、ユーザーがフォームに入力したとおりにユーザーをグループ化して作業したときに、user_permissionsテーブルとの関係を作成しました私はそれは同じユーザーがウェブサイトで署名されていることを認識しないと思う同じ方法、私は思う。Laravel Eloquent hasOne。非オブジェクトのプロパティを取得しようとしています

次のコードの作業の際にウェブサイト

$user->permissions()->create(UserPermission::user_group($nature_of_entity)); 

へのユーザーのサインアップしかし、私は、以下の方法にそれを使用したいとき、私は非のプロパティを取得しようとするとエラーを取得 - オブジェクト。

:私はのように、それはユーザーがどのグループにある参照しようとしている(ID、USER_ID、is_group_one、is_group_two、is_group_three)

を持つユーザーのデータベーステーブルの名前users_permissionsで

public function hasPermission($permission) { 
     return (bool) $this->permissions->$permission; 
    } 

public function permissions() { 
     return $this->hasOne('App\User\UserPermission', 'user_id'); 
    } 

if($app->user->hasPermission('is_group_one')){ 
     echo 'Group One'; 
} 

しかし、私はエラーが発生します非オブジェクトのプロパティを取得しようとしています。 私は本当にありがとうと思います。何かを助けることができれば、私はこれを行うことができ、Laravel Eloquent Relationshipsメソッドを使用することができます。私はあなたが私の意味を理解できることを願っています。

+0

を、あなたの権限データベースに正確に何を格納していますか? – PeterPan666

答えて

1

権限の関係を照会し、列(つまり、$ permission)がTRUEであるかどうかを確認するスコープを作成します。あなたはそれを持っていたとして(bool)ビットアクス...

public function scopeHasPermission($query, $permission) 
{   
    return $query->permissions->where($permission, true); 
} 

は、その後、あなたのコントローラで、同じ本を保つ:

if($app->user->hasPermission('is_group_one')) { 
    ... 
} 
+0

私はまだ同じエラーが発生しています。非オブジェクトのプロパティを取得しようとしています... –

+0

これは私の終わりに今テストするのが難しいです。編集を確認します。 –

+0

public function hasPermission($ permission){ return $ this-> permissions() - >ここで($ permission、true); } –

関連する問題