Pessoal, estou alterando uma função em um código de um sistema comprado pela empresa onde trabalho, porém como é um método novo utilizando um framework que ainda não havia trabalhado (Laravel) tenho dificuldades em fazer uma simples comparação de dados.
Explicando o objetivo do código: Se o usuário for administrador, ele lista todos os "Albums", como podemos verificar no código abaixo:
if($this->data['users']->role == "admin" ){
$toReturn = array();
if($dir != 0){
$toReturn['current'] = mediaAlbums::where('id',$dir)->get()->first()->toArray();
}
$toReturn['albums'] = mediaAlbums::where('albumParent',$dir)->get()->toArray();
$toReturn['media'] = mediaItems::where('albumId',$dir)->orderBy('mediaTitle', 'ASC')->get()->toArray();
$toReturn['dormitory'] = dormitories::get()->toArray();
return $toReturn;
}
Até aqui tudo Ok.
Na segunda parte, se o usuário for "student" ele poderá listar apenas os álbuns para determinado usuário.
if($this->data['users']->role == "student"){
$cursoAluno = $this->data['users']->dormitoryId;
$toReturn = array();
if($dir != 0){
$toReturn['current'] = mediaAlbums::where('id',$dir)->get()->first()->toArray();
}
$toReturn['albums'] = mediaAlbums::whereIn('dormitoryId', $cursoAluno)->get()->toArray();
$toReturn['media'] = mediaItems::where('albumId',$dir)->orderBy('mediaTitle', 'ASC')->get()->toArray();
$toReturn['dormitory'] = dormitories::get()->toArray();
return $toReturn;
}
Pra fazer a comparação, na tabela do usuário (users) armazenamos um código dizendo a qual grupo ele pertence, em texto simples no campo dormitoryId. Valor armazenado na variável "$cursoAluno".
Na tabela do album (mediaAlbums) armazenamos os grupos que determinado album pertence no campo dormitoryId, com json a partir de multi select...ficando os valores armazenados desta forma : ["1","2"]
O que eu preciso comparar é: Mostrar apenas os albums que no campo "dormitoryId" tem o valor do grupo do aluno armazenado na variável $cursoAluno.
Alguém tem uma solução?
Obrigado