Я разрабатывал приложение в CakePHP 2.6, где сотрудник изначально принадлежал только одному отделу, однако системные требования теперь изменены, и существует связь HasAndBelongsToMany (HABTM) между персоналом и отделом.Как выполнить поиск по массиву в AuthComponent :: user()?
В настоящее время это является проблемой, когда я показываю информацию только тем сотрудникам, которые принадлежат к определенному отделу в представлении, так как мой объект AuthComponent :: user() теперь содержит массив департаментов.
Есть ли простой способ перебрать массив AuthComponent :: user() и проверить, совпадает ли значение с выбранным значением?
Старый Посмотреть код до того HABTM отношений:
if (AuthComponent::user('admin') == 1 || (AuthComponent::user('department_id') == $department['Department']['id'])) {
// Some code here
};
AuthComponent :: Пользователь() массив:
array(16) {
["id"]=>
string(1) "6"
["salutation"]=>
string(2) "Mr"
["firstname"]=>
string(6) "Joe"
["lastname"]=>
string(4) "Bloggs"
["email"]=>
string(21) "[email protected]"
["role"]=>
string(23) "Teacher"
["admin"]=>
bool(true)
["dos"]=>
bool(false)
["school_id"]=>
string(1) "1"
["active"]=>
bool(true)
["School"]=>
array(2) {
["id"]=>
string(1) "1"
["name"]=>
string(10) "School Name"
}
["Department"]=>
array(3) {
[0]=>
array(2) {
["id"]=>
string(1) "4"
["name"]=>
string(20) "Careers & University"
}
[1]=>
array(2) {
["id"]=>
string(2) "14"
["name"]=>
string(9) "Geography"
}
[2]=>
array(2) {
["id"]=>
string(2) "16"
["name"]=>
string(3) "ICT"
}
}
}
вы можете использовать 'Hash :: extract' для извлечения идентификаторов отдела, а затем использовать in_array для проверки того, находится ли ваш' department_id' в массиве – arilia