1

ユーザーが役割を持つLaravelでアプリを構築しています。

ユーザーモデルとreturn $this->belongs_to('Role')ロールモデルをセットアップしましreturn $this->has_many('User')た。ユーザーデータベーステーブルには列role_idがあります。

私の質問は、ユーザーモデルを介してロールを読み取り、更新することです。以下のコードは私が試してきたものですが、今のところうまくいきません:

コントローラ

return View::make('admin.users.index')->with('users', User::paginate(50));
// Also tried User::with('role')->paginate(50) which doesn't help

意見

@foreach($users->results as $user)

    {{ $user->role->role }} // Trying to get property of non-object
    {{ $user->role()->role }} // Undefined property

    {{ var_dump($user->role) }}

    // Outputs
    object(Role)#39 (5) {
        ["attributes"]=>
            array(4) {
                ["id"]=> string(1) "2"
                ["role"]=> string(4) "User"
                ["created_at"]=> string(19) "0000-00-00 00:00:00"
                ["updated_at"]=> string(19) "0000-00-00 00:00:00"
            }
        ["original"]=>
            array(4) {
                ["id"]=> string(1) "2"
                ["role"]=> string(4) "User"
                ["created_at"]=> string(19) "0000-00-00 00:00:00"
                ["updated_at"]=> string(19) "0000-00-00 00:00:00"
            }
        ["relationships"]=>
            array(0) {
            }
        ["exists"]=> bool(true)
        ["includes"]=>
            array(0) {
            }
    }

@endforeach

更新も同様の話です-$user->role = Input::get('role')どちらも機能しません。

私は明らかにここに何かが欠けています.誰かがこれを行う正しい方法を教えてくれますか?

4

2 に答える 2

0

ご覧のとおり、ロールは配列を返すため、配列のようにアクセスする必要があります

それにアクセスする正しい方法は

$user->role[0]->id

于 2013-04-28T21:31:30.803 に答える
0

これをチェックしてください:http://vespakoen.github.com/authority-laravel/

laravel の ACL Authority バンドルです。そこでは、ユーザーは 1 から n の役割を持つことができるため、this->has_many_and_belongs_to.

于 2013-03-22T14:24:04.160 に答える