2016-09-06 4 views
1

私はユーザーロールをブレードに渡したいと思っています。Retrive laravelでユーザーを収集するためのロール名

UserControllerで:

public function index(){ 

    $users = User::with('roles')->paginate(10); 
    foreach ($users as $user) { 
     echo (!$user->roles->isEmpty() ? $user->roles->name : 'No Role'); 
    } 
} 

Create_role_table_migration:

 Schema::create('roles', function (Blueprint $table) { 
     $table->increments('id')->unique(); 
     $table->string('name', 45); 
     $table->string('lable', 45); 
     $table->timestamps() ; 
    }); 

エラーは私が手: 未定義のプロパティ:

ErrorException UsersController.phpライン23で照らす\データベース\雄弁\コレクション:: $ name

「名前」はどうしたらいいですか?


PS:私は変更:

  echo (!$user->roles->isEmpty() ? $user->roles->name : 'No Role'); 

に:

  echo (!$user->roles->isEmpty() ? $user->roles : 'No Role'); 

この結果が示すであろう:

何の役割


[{ "ID":11 、 "name": "User"、 "lable": "ライセンスassigを持つことができる標準ユーザー"、 "created_a t ":" 2016-09-05 18:36:53 "、" updated_at ":" 2016-09-05 18:36:53 "、" pivot ":{" user_id ":103、" role_id ":11} }]
いいえロール
いいえロール
[{"" id ":8、" name ":" FinancialAndOfficial Manager "、" lable ":"財務 "、" created_at ":" 2016-09 -05 18:36:53 "、" updated_at ":" 2016-09-05 18:36:53 "、" pivot ":{" user_id ":106、" role_id ":8}}
ロールなし
[ {"id":4、 "name": "QalityControl Manager"、 "lable": "QalityCon"、 "created_at": "2016-09-05 18:36:53"、 "updated_at "{" "id":11、 "name": "User"} ":" 2016-09-05 18:36:53 "、" pivot ":{" user_id ":108、" role_id ":4}}
[ 、 "lable": "ライセンスassigを持つことができる標準ユーザー"、 "created_at": "2016-09-05 18:36:53"、 "updated_at": "2016-09-05 18:36:53" 、 "pivot":{"user_id":109、 "role_id":11}}]
ロールなし
ロールなし

しかし、私はすぐ上の行

答えて

0

自分で解決策を見つける:

私が使用する必要があります。

user->roles->first()->name 

の代わり:

user->roles->->name 

原因を「USER- > roles "コレクションを返すとオブジェクトのプロパティを取得しようとする前にコレクションメソッドを使用する必要があります

0

rolesが空の場合は、チェックしているし、それがある場合、あなたが財産を取得しようとしているから「名前」をフェッチしてみてください。だから、これに変更コード:

$user->roles->isEmpty() ? 'No Role' : $user->roles->name 
+0

tnx alexey、それは書面で私の間違っていた、それは正しいコードであった。私は私の質問を編集する。問題はまだ生きています。あなたはそれについて何か考えていますか? – user3634011

+0

@ user3634011、あなたはコードを編集していません。今では「身体に1文字追加」と書かれています。 –

+0

私の質問をより明確にするためにもう一度編集しました – user3634011

関連する問題