У меня есть следующие в моем методе контроллера, который возвращает JSON на мой взгляд:Доверьте не находя роли пользователя
public function RolesForUser()
{
$userid = Input::get('userid');
$assigned = DB::table('assigned_roles')
->select(array('role_id'))
->where('user_id', '=', $userid)
->get();
$user = User::find($userid);
$roles = $user->roles();
$data = array('assigned' => $assigned, 'roles' => $roles);
return Response::json($data);
}
Возвращает следующее (проверено с помощью Fiddler):
{"assigned":[{"role_id":"2"},{"role_id":"3"},{"role_id":"4"}],"roles":{}}
В SQL заявление, использует Query Builder возвращает правильные результаты, но метод, который использует Entrust (скопированный с Entrust Issue 34 после внесения изменений в мою модель пользователя) не возвращает никаких ролей.
Я также пробовал решение в this SO question, но он просто дает мне ошибку SQL.
Любые идеи, в которых я ошибаюсь, я нахожусь на Laravel 4.2.11?
Моя модель Пользователь:
class User extends Eloquent implements UserInterface, RemindableInterface
{
use HasRole;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'Users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('Password');
protected $primaryKey = 'UserID';
public $timestamps = false;
/*Standard methods removed for brevity*/
public function roles()
{
return $this->hasMany('Role');
}
}
Похоже, что отношения между моделью пользователя и его ролями настраиваются таким образом, чтобы он не работал на вас. Можете ли вы добавить используемые методы или черты отношения? Благодаря! – hannesvdvreken
@hannesvdvreken - Я добавил соответствующие биты моей модели пользователя – SteB