2016-11-10 15 views
2

laravel 5.3では、All Usersページ(admin/users)で登録ユーザーを編集して、ロールと権限を割り当てようとしています。私はlaravel 5.2 pdf bookのコードを使用しました。いつでも私はそれを編集するためにユーザーをクリックします。それはlists()機能はLaravel 5.3以降廃止されたエラーlaravel 5.3でnullのメンバー関数lists()を呼び出す

FatalThrowableError in UsersController.php line 26: Call to a member function lists() on null.

public function edit($id) 
{ 
    $user = User::whereId($id)->firstOrFail(); 
    $roles = Role::all(); 
    $selectedRoles = $user->roles->lists('id')->toArray(); 
    return view('backend.users.edit', compact('user', 'roles', 'selectedRoles')); 
} 
+0

'User'クラス内に' roles'メソッドを表示できますか? –

+0

チェック[この類似質問](http://stackoverflow.com/questions/32745597/call-to-a-member-function-lists-on-null?rq=1)しかし、そこには答えはありません。しかし、コメントが役に立つかもしれません。 –

+0

私は自分の役割と許可に委託を使用しました。 – Segzy

答えて

4

の下に現れます。代わりにpluckを使用してください。

エラーについて
$selectedRoles = $user->roles->pluck('id'); 

: あなたは、したがって、特定のユーザー、エラーのいずれかの役割を持ってはいけません。

+0

私はリストを抜粋と置き換えましたが、同じエラーがポップアップします。私はあなたが何を意味するのか理解していない特定のユーザーのための役割を持っていない – Segzy

+0

データベースのレコードを確認してください。そうでなければ 'tinker'に行き、あなたがシステムに持っている全てのユーザに対して' $ user-> roles'と打ちます。役割を持たないユーザーがいます。 – linuxartisan

+0

tinkerが機能していません。それは未定義の変数を引き出す:1行目のユーザ – Segzy

関連する問題