То, что вы хотите, легко.Все, что вам нужно сделать, это can_add()
вернуть что-то.Этот код подразумевает, что вы ожидаете его.
public function newProduct(){
$data['roles'] = $this->can_add();
...
Но в вашем коде can_add()
не ничего не возвращает.В newProduct()
значение, присвоенное $data['roles']
, будет нулевым.
Не совсем понятно, что вам нужно от can_add()
.Я сделаю предположение.Следующий код возвращает индексированный array
, где значением каждого элемента является массив с ключами can_add
и can_delete
.
public function can_add()
{
$desc = 'inventory';
$user_id = $this->session->userdata('employee_id');
$roles = $this->priviledges_model->app_roles($desc);
foreach ($roles as $role)
{
$member_roles = $this->priviledges_model->empApp_roles($user_id, $role['role_id']);
foreach ($member_roles as $role)
{
$data[] = array($role['can_add'], $role['can_delete']);
}
}
return $data;
}
Выше приведен пример «плохой практики».Как правило, «лучшие практики» говорят, что вы не должны выполнять запросы к базе данных в цикле, что и происходит с вызовом
$member_roles = $this->priviledges_model->empApp_roles($user_id, $role['role_id']);
Трудно понять наверняка, но я догадываюсь, что метод моделиМожно было бы придумать, что бы возвращать одинаковые результаты без необходимости использовать две модели или прибегать к вызовам базы данных в цикле.Кажется, существует связь между двумя (или более) таблицами, которые легко обрабатываются хорошо спроектированным запросом.Но это лучше всего изучить в другом вопросе.