Eu havia colocado essas dúvidas em uma resposta de outro post, mas achei melhor criar um novo, porém se eu estiver errado, por favor moderem.
Primeiramente ainda não consegui utilizar o begin(), rollback() e commit()... O questionamento está no post que respondi do MaajDrall sobre controle de transações. Eu crio a instância do objeto, faço a chamada ao begin() ($obj->begin()) conforme foi explicado no post, mas não funciona.
Além disso tenho outra dúvida, porém em relação à procedures, ou quem sabe haja um método no Lumine para o que eu preciso.
Criei uma estrutura de controle de acesso conforme segue:
Usuários pertencem à Grupos e cada grupo possui ações (permissões) que são definidas para ele. Porém, quando o usuário é uma pessoa que tem permissão de acessar os grupos, criando, editando, etc, é necessário que ele veja, além do próprio grupo, somente os grupos que fazem parte da árvore para baixo, ou seja, os filhos, os netos, etc... Para isso necessito utilizar recursividade, mas não vejo muitas vantagens em utilizar da maneira como fiz. Segue:
$groupList = NULL;
$totalRow = 0;
recursion($_POST['userGroupId'], $groupList, true, $totalRow);
function recursion($_groupId, &$result, $firstTime, &$totalRow)
{
$query = $firstTime? 'groupId = ' . $_groupId : 'groupParentId = ' . $_groupId;
$groupObj = new Group();
$groupObj->where($query);
$totalRow += $groupObj->find();
$groupObj->find();
$arrayGroup = $groupObj->allToArray();
foreach($arrayGroup as $group)
{
$result[] = $group;
recursion($group['groupId'], $result, false, $totalRow);
}
}
TABLE:
tb_group
FIELDS: groupId, groupName, groupParentId
Mesmo sendo de uma maneira mais simples, eu criei a paginação, a ordenação de acordo com a coluna clicada, e etc nessa estrutura, porém para filtros eu vi que eu deveria varrer novamente o array e fazer o algoritmo de busca pela palavra pesquisada (ou parte dela), ou seja, não vale muito a pena fazer assim já que uma procedure faria esse trabalho de uma maneira mais rápida e com uma quantidade de acessos ao banco muito menor, ainda mais se eu quiser utilizar essa recursividade em tabelas com uma quantidade de registros consideravelmente maior, como um programa de afiliados, por exemplo, sei lá. Assim sendo pensei que possa haver ou uma maneira de acesso à procedures pelo Lumine, ou algum método do próprio Lumine que já faça o trabalho que eu preciso.
Eu tentei, infelizmente sem sucesso, utilizar o Lumine_Dialect_MySQL($obj) para executar uma procedure. Segue como eu fiz:
$groupObject = new Group();
$teste = new Lumine_Dialect_MySQL($groupObject);
$conn = new Lumine_Connection_MySQL();
$conn->connect();
$teste->setConnection($conn);
$teste->execute('SELECT * FROM tb_group');
Seria utilizando o Lumine_Dialect_MySQL para fazer acesso à procedures mesmo? Ou existe alguma outra solução sem procedures para o problema que expus? Por favor, se souberem das duas soluções, compartilhem ambas...
Valeu galera!
Deus os abençoe!!!

Help
















