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": "사용자", "lable": "라이센스 사용자가 될 수있는 표준 사용자", "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,"이름 ":"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 ":"2016-09-05 18:36:53 ","pivot ": {"user_id ": 108,"role_id ": 4}}]
[{"id ": 11,"name ":"User " , "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 

원인 "사용자 - > 역할 "컬렉션을 반환하고 개체 속성을 얻기 전에 컬렉션 메서드를 사용해야합니다

0

roles가 비어있는 경우 검사하고하고 있는지, 당신이 재산을 얻으려고 노력하고 있습니다에서 '이름'을 가져보십시오. 그래서,이로 변경 코드 :

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

tnx alexey, 필자의 잘못으로, 코드에서 정확했다. 내 질문을 편집합니다. 그래서 문제는 여전히 살아있다. 그것에 대해 어떤 생각을 가지고 있니? – user3634011

+0

@ user3634011, 코드를 수정하지 않았습니다. 이제는 '몸에 한 글자가 더해졌습니다.'라고 말합니다. –

+0

나는 내 질문을 더 명확하게하기 위해 그것을 다시 편집했다. – user3634011

관련 문제