我在http://laravel.com/docs/上关注了一些教程,但它无法正常工作。这是我试过的:
角色模型:
<?php
class Role extends Eloquent {
protected $table = 'accounts';
public function users()
{
return $this->belongsToMany('User');
}
}
RoleController.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');
}
}
}
答案 0 :(得分:1)
这一行:
$roles = User::find(16)->group_id;
表示您要求“查找用户16,并向我提供该用户的group_id”。这是您所引用的“1”(在您的评论中)。
由于您有group_id
- 更改
if ($roles->contains(3))
到
if ($roles == '3')
答案 1 :(得分:0)
这是解决方案,我在RoleController.php中更改了它:
<?php
class 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');
}
}
}