0

我按照http://laravel.com/docs/上的一些教程进行操作,但它不起作用。这是我尝试过的:

好榜样:

<?php

class Role extends Eloquent {

    protected $table = 'accounts';

    public function users()
    {
        return $this->belongsToMany('User');
    }
}

角色控制器.php

<?php

class RoleController extends BaseController {

    public function get_role()
    {
        $roles = User::find(16)->group_id;

        if ($roles->contains(3))
        {
            echo 'this works';
        }
        else
        {
            return Redirect::to('news/index');
        }
    }
}

还有我的路线:

Route::get('dash', 'RoleController@get_role');

这是我的错误:

Call to a member function contains() on a non-object

它说错误在线:

if ($roles->contains(3))

就像 contains 方法是......我不知道哈哈。

另外,$roles = User::find(16)->group_id; 16 是id帐户的,对吗?是group_id桌子吗?

提前致谢。

编辑:

这是解决方案,我已将其更改为RoleController.php

<?php

class RoleController extends BaseController {

    public function get_role()
    {
        $roles = User::find(16)->group_id;

        if (if ($roles == '1')
        {
            echo 'this works';
        }
        else
        {
            return Redirect::to('news/index');
        }
    }
}
4

2 回答 2

1

这一行:

$roles = User::find(16)->group_id;

表示您在问“找到用户 16,并给我该用户的 group_id”。这是您所指的“1”(在您的评论中)。

既然你有group_id- 改变

if ($roles->contains(3))

if ($roles == '3')
于 2013-08-02T13:45:49.087 回答
0

这是解决方案,我在 RoleController.php 中更改了它:

    <?php

类 RoleController 扩展 BaseController {

    public function get_role() {
$roles = User::find(16)->group_id;

            if (if ($roles == '1')
             {
               echo 'this works';
             } else {

               return Redirect::to('news/index');
                    }
             }
}
于 2013-08-02T13:50:15.777 回答