get

16 views
Skip to first unread message

Flavio Antonio

unread,
Sep 9, 2019, 11:44:50 AM9/9/19
to CakePHP Tuga
Olá, Cakers!

Estou tentando mas não estou encontrando uma forma de dar um get por outro campo da tabela do banco de dados.

é a tabela Modulos, onde tenho os campos id, nome e nivel

Consigo pegar pelo campo id, que é a chave primária da seguinte forma:

$permissao = $this->Modulos->get('1');

Porém, eu queria pegar pelo campo nome

Algo assim mais ou menos assim:

$permissao = $this->Modulos->get('nome' = > 'usuarios');

Tem alguma forma de fazer isso?

Marcos Bernardo

unread,
Sep 9, 2019, 11:48:45 AM9/9/19
to cakep...@googlegroups.com
Neste caso vc deve usar o find
O get so pega pela chave da tabela

Da uma olhada no find


--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu ao grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para cakephp-pt+...@googlegroups.com.
Para ver este debate na Web, visite https://groups.google.com/d/msgid/cakephp-pt/567b05a6-82e0-46b3-ada5-7d4362ff0d7b%40googlegroups.com.

Marcos Bernardo

unread,
Sep 9, 2019, 11:51:24 AM9/9/19
to cakep...@googlegroups.com
Complemento
User find('first', option [])

Flavio Antonio

unread,
Sep 10, 2019, 5:59:36 PM9/10/19
to CakePHP Tuga
Imaginei isso e achei bem estranho porque no caso eu vou ter que colocar um ->where

Israel Da Cruz Alves da Silva

unread,
Jan 25, 2020, 10:19:51 AM1/25/20
to CakePHP Tuga
Acredito que de voce for em Src > Model > Teble > localizar a tabela em questão despois localizar o campo 

 $this->setDisplayField('id');

alterar para  ==>

$this->setDisplayField('nome');

você consiga fazer oque esta precisando...

Espero ter ajudado...

Rafael Queiroz

unread,
Jan 27, 2020, 7:27:19 AM1/27/20
to cakep...@googlegroups.com
Flavio,

O método Model::get() sempre vai buscar pela chave primária, uma forma de voce fazer isso em tempo de execução no controlador é:

$this->Modulos->setPrimaryKey('nome');
$this->Modulos->get('usuarios');

Essa não é a maneira mais recomendada, afinal, você tá modificando a chave primária, seria criar um custom find.



--
--
CakePHP Tuga (cakephp-pt)
 
Utilize http://bin.cakephp.org para códigos
Cookbook: http://book.cakephp.org
 
Website do CakePHP: http://cakephp.org/
Website do grupo: http://groups.google.com/group/cakephp-pt?hl=pt-PT
---
Recebeu esta mensagem porque subscreveu ao grupo "CakePHP Tuga" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para cakephp-pt+...@googlegroups.com.


--
Best Regards,

Rafael F. Queiroz

Clesio Santos

unread,
Jan 27, 2020, 8:30:29 AM1/27/20
to cakep...@googlegroups.com
Se me permitem a opinião/dúvida.
Ao trocar a chave primária no controller o cake cria índice no banco?
Se não cria. Sugiro criar índice no banco na coluna nome, ou com o aumento do banco o tempo de resposta desta consulta pode gerar lentidão.

Rafael Queiroz

unread,
Jan 27, 2020, 8:35:33 AM1/27/20
to cakep...@googlegroups.com
Oi Clesio,

Na verdade, essa troca tá sendo feita on-the-fly no controlador, seria mais para ele conseguir usar o Model->get() com um campo especifico.
Sobre criação de indices no banco, isso deve ser feito na hora do migrations.

Clesio Santos

unread,
Jan 27, 2020, 8:41:09 AM1/27/20
to cakep...@googlegroups.com
Entendi.
Neste caso seria interessante criar este índice na coluna, caso o tempo de resposta ou a quantidade de queries deva ser importante.

Reply all
Reply to author
Forward
0 new messages