Re: campos set e enum

2008-02-09 Por tôpico Desenvolvimento SiscoJ

 Eu não entendi muito bem. A tabela IMAGE tem um campo chamado TIPO certo?

Sim!

 Esse tipo, presumo, seria uma lista conhecida de poucos itens?

Sim!

 Se for isso, por que não criar o campo TIPO usando o tipo de dados enum do
 mysql?  O que eu não entendi é para que um segundo modelo além do modelo
 IMAGE á que TIPO é atributo de IMAGE e não chave estrangeira de outro
 modelo.

Bem.. Os TIPO's sao conhecidos e na tabela IMAGE tenho um atributo
TIPO do tipo int, dessa maneira, armazeno somente esse numero, mas
cada tipo, tem sua propria descriçao... Acabei montando uma classe q
possui um array cujo Index é o id do tipo e o value eh a descriçao
Optei por isso, pois muitas vezes precisarei montar views e mostrar
essas descriçoes sem mesmo ter que ter uma imagem como classe PAI...
De qualquer forma, valeu a atençao em pleno sabado de carnaval! :-)

Siscoj WEB

PS: Bom fds pra tds ae tbm! :-)




 Manda mais detalhes para gente.

 Abração e bom feriado,
 Benito

 2008/2/2 SiscoJ WEB [EMAIL PROTECTED]:

 
  Pessoal,
  estou começando a cair dentro do Cake, mas,
  estou com um problema justamente nessa parte.
 
  Tenho um modelo IMAGE q vai ter um atributo TIPO... esse TIPO
  normalmente vai aparecer nas views simplesmente como
  header de algumas colunas nas listagens... nao vejo necessidade de
  criar um enum ou uma table para esse TIPO...
 
  como posso criar um modelo sem tabela relacionada de formas q
  possa mostrar a descriçao desse tipo sempre que quiser e funcione
  similar a um enum?
 
  Alguma sugestao?
 
  att.
 
  Siscoj WEB
  On Feb 1, 1:45 pm, Josenivaldo Benito Junior
  [EMAIL PROTECTED] wrote:
   Olá,
  
   Eu resolvi esse problema usando uma função no AppModel:
  
   * Get Enum Values
* Snippet v0.1.3
  
 *http://cakeforge.org/snippet/detail.php?type=snippetid=112
*
* Gets the enum values for MySQL 4 and 5 to use in selectTag()
* Tested with PHP 4/5 and CakePHP 1.1.8
*/
   function getEnumValues($columnName=null)
   {
   if ($columnName==null) { return array(); } //no field specified
  
   //Get the name of the table
   $db =
 ConnectionManager::getDataSource($this-useDbConfig);
   $tableName = $db-fullTableName($this, false);
  
   //Get the values for the specified column (database and
   version specific, needs testing)
   $result = $this-query(SHOW COLUMNS FROM {$tableName} LIKE
   '{$columnName}');
  
   //figure out where in the result our Types are (this varies
   between mysql versions)
   $types = null;
   if ( isset( $result[0]['COLUMNS']['Type'] ) ) { $types =
   $result[0]['COLUMNS']['Type']; } //MySQL 5
   elseif ( isset( $result[0][0]['Type'] ) ) { $types =
   $result[0][0]['Type']; } //MySQL 4
   else   { return array(); } //types return not accounted for
  
   //Get the values
   $values = explode(',',
   preg_replace(/(enum)\('(.+?)'\)/,\\2, $types) );
  
   //explode doesn't do assoc arrays, but cake needs an assoc to
   assign values
   $assoc_values = array();
   foreach ( $values as $value ) {
   //leave the call to humanize if you want it to look pretty
   $assoc_values[$value] = Inflector::humanize($value);
   }
  
   return $assoc_values;
  
   } //end getEnumValues
  
   Como vc pode ver a solução não é minha, achei a sugestão na internet e
   considerei uma alternativa boa já que tenho alguns campos enum ou SET
 nas
   minhas tabelas.
  
   Abraço,
   Benito.
  
   2008/1/30 Fênix [EMAIL PROTECTED]:
  
  
  
Oi pessoal,
  
Estou com o seguinte problema.Tenho um campo da tabela que é estado
civil, este campo é do tipo enum, esta da seguinte forma no banco:
escivil
 enum('Solteiro(a)','Casado(a)',''Viuvo(a),'Separado(a)');
  
e um outro campo do tipo set, onde a pessoa informa se tem algum tipo
de necessidade especial.
 prt_nec set('fisica','visual,'auditiva');
  
ao utilizar o bake vi que ele não consegue gerar o formulário
corretamente para esses campos.
  
gostaria de saber como utilizar o helper do html e o que deveria fazer
para que os valores do banco fossem lidos. e passados corretamente.
 
 
   
 


--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo Cake PHP Português 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: campos set e enum

2008-02-02 Por tôpico SiscoJ WEB

Pessoal,
estou começando a cair dentro do Cake, mas,
estou com um problema justamente nessa parte.

Tenho um modelo IMAGE q vai ter um atributo TIPO... esse TIPO
normalmente vai aparecer nas views simplesmente como
header de algumas colunas nas listagens... nao vejo necessidade de
criar um enum ou uma table para esse TIPO...

como posso criar um modelo sem tabela relacionada de formas q
possa mostrar a descriçao desse tipo sempre que quiser e funcione
similar a um enum?

Alguma sugestao?

att.

Siscoj WEB
On Feb 1, 1:45 pm, Josenivaldo Benito Junior
[EMAIL PROTECTED] wrote:
 Olá,

 Eu resolvi esse problema usando uma função no AppModel:

 * Get Enum Values
  * Snippet v0.1.3
  *http://cakeforge.org/snippet/detail.php?type=snippetid=112
  *
  * Gets the enum values for MySQL 4 and 5 to use in selectTag()
  * Tested with PHP 4/5 and CakePHP 1.1.8
  */
 function getEnumValues($columnName=null)
 {
 if ($columnName==null) { return array(); } //no field specified

 //Get the name of the table
 $db = ConnectionManager::getDataSource($this-useDbConfig);
 $tableName = $db-fullTableName($this, false);

 //Get the values for the specified column (database and
 version specific, needs testing)
 $result = $this-query(SHOW COLUMNS FROM {$tableName} LIKE
 '{$columnName}');

 //figure out where in the result our Types are (this varies
 between mysql versions)
 $types = null;
 if ( isset( $result[0]['COLUMNS']['Type'] ) ) { $types =
 $result[0]['COLUMNS']['Type']; } //MySQL 5
 elseif ( isset( $result[0][0]['Type'] ) ) { $types =
 $result[0][0]['Type']; } //MySQL 4
 else   { return array(); } //types return not accounted for

 //Get the values
 $values = explode(',',
 preg_replace(/(enum)\('(.+?)'\)/,\\2, $types) );

 //explode doesn't do assoc arrays, but cake needs an assoc to
 assign values
 $assoc_values = array();
 foreach ( $values as $value ) {
 //leave the call to humanize if you want it to look pretty
 $assoc_values[$value] = Inflector::humanize($value);
 }

 return $assoc_values;

 } //end getEnumValues

 Como vc pode ver a solução não é minha, achei a sugestão na internet e
 considerei uma alternativa boa já que tenho alguns campos enum ou SET nas
 minhas tabelas.

 Abraço,
 Benito.

 2008/1/30 Fênix [EMAIL PROTECTED]:



  Oi pessoal,

  Estou com o seguinte problema.Tenho um campo da tabela que é estado
  civil, este campo é do tipo enum, esta da seguinte forma no banco:
  escivil enum('Solteiro(a)','Casado(a)',''Viuvo(a),'Separado(a)');

  e um outro campo do tipo set, onde a pessoa informa se tem algum tipo
  de necessidade especial.
   prt_nec set('fisica','visual,'auditiva');

  ao utilizar o bake vi que ele não consegue gerar o formulário
  corretamente para esses campos.

  gostaria de saber como utilizar o helper do html e o que deveria fazer
  para que os valores do banco fossem lidos. e passados corretamente.

--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo Cake PHP Português 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: campos set e enum

2008-02-02 Por tôpico Josenivaldo Benito Junior
Opa, bom fim de semana,

Eu não entendi muito bem. A tabela IMAGE tem um campo chamado TIPO certo?
Esse tipo, presumo, seria uma lista conhecida de poucos itens?
Se for isso, por que não criar o campo TIPO usando o tipo de dados enum do
mysql?  O que eu não entendi é para que um segundo modelo além do modelo
IMAGE á que TIPO é atributo de IMAGE e não chave estrangeira de outro
modelo.

Manda mais detalhes para gente.

Abração e bom feriado,
Benito

2008/2/2 SiscoJ WEB [EMAIL PROTECTED]:


 Pessoal,
 estou começando a cair dentro do Cake, mas,
 estou com um problema justamente nessa parte.

 Tenho um modelo IMAGE q vai ter um atributo TIPO... esse TIPO
 normalmente vai aparecer nas views simplesmente como
 header de algumas colunas nas listagens... nao vejo necessidade de
 criar um enum ou uma table para esse TIPO...

 como posso criar um modelo sem tabela relacionada de formas q
 possa mostrar a descriçao desse tipo sempre que quiser e funcione
 similar a um enum?

 Alguma sugestao?

 att.

 Siscoj WEB
 On Feb 1, 1:45 pm, Josenivaldo Benito Junior
 [EMAIL PROTECTED] wrote:
  Olá,
 
  Eu resolvi esse problema usando uma função no AppModel:
 
  * Get Enum Values
   * Snippet v0.1.3
   *http://cakeforge.org/snippet/detail.php?type=snippetid=112
   *
   * Gets the enum values for MySQL 4 and 5 to use in selectTag()
   * Tested with PHP 4/5 and CakePHP 1.1.8
   */
  function getEnumValues($columnName=null)
  {
  if ($columnName==null) { return array(); } //no field specified
 
  //Get the name of the table
  $db = ConnectionManager::getDataSource($this-useDbConfig);
  $tableName = $db-fullTableName($this, false);
 
  //Get the values for the specified column (database and
  version specific, needs testing)
  $result = $this-query(SHOW COLUMNS FROM {$tableName} LIKE
  '{$columnName}');
 
  //figure out where in the result our Types are (this varies
  between mysql versions)
  $types = null;
  if ( isset( $result[0]['COLUMNS']['Type'] ) ) { $types =
  $result[0]['COLUMNS']['Type']; } //MySQL 5
  elseif ( isset( $result[0][0]['Type'] ) ) { $types =
  $result[0][0]['Type']; } //MySQL 4
  else   { return array(); } //types return not accounted for
 
  //Get the values
  $values = explode(',',
  preg_replace(/(enum)\('(.+?)'\)/,\\2, $types) );
 
  //explode doesn't do assoc arrays, but cake needs an assoc to
  assign values
  $assoc_values = array();
  foreach ( $values as $value ) {
  //leave the call to humanize if you want it to look pretty
  $assoc_values[$value] = Inflector::humanize($value);
  }
 
  return $assoc_values;
 
  } //end getEnumValues
 
  Como vc pode ver a solução não é minha, achei a sugestão na internet e
  considerei uma alternativa boa já que tenho alguns campos enum ou SET
 nas
  minhas tabelas.
 
  Abraço,
  Benito.
 
  2008/1/30 Fênix [EMAIL PROTECTED]:
 
 
 
   Oi pessoal,
 
   Estou com o seguinte problema.Tenho um campo da tabela que é estado
   civil, este campo é do tipo enum, esta da seguinte forma no banco:
   escivil enum('Solteiro(a)','Casado(a)',''Viuvo(a),'Separado(a)');
 
   e um outro campo do tipo set, onde a pessoa informa se tem algum tipo
   de necessidade especial.
prt_nec set('fisica','visual,'auditiva');
 
   ao utilizar o bake vi que ele não consegue gerar o formulário
   corretamente para esses campos.
 
   gostaria de saber como utilizar o helper do html e o que deveria fazer
   para que os valores do banco fossem lidos. e passados corretamente.

 


--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo Cake PHP Português 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: campos set e enum

2008-02-01 Por tôpico Josenivaldo Benito Junior
Olá,

Eu resolvi esse problema usando uma função no AppModel:

* Get Enum Values
 * Snippet v0.1.3
 * http://cakeforge.org/snippet/detail.php?type=snippetid=112
 *
 * Gets the enum values for MySQL 4 and 5 to use in selectTag()
 * Tested with PHP 4/5 and CakePHP 1.1.8
 */
function getEnumValues($columnName=null)
{
if ($columnName==null) { return array(); } //no field specified


//Get the name of the table
$db = ConnectionManager::getDataSource($this-useDbConfig);
$tableName = $db-fullTableName($this, false);


//Get the values for the specified column (database and
version specific, needs testing)
$result = $this-query(SHOW COLUMNS FROM {$tableName} LIKE
'{$columnName}');

//figure out where in the result our Types are (this varies
between mysql versions)
$types = null;
if ( isset( $result[0]['COLUMNS']['Type'] ) ) { $types =
$result[0]['COLUMNS']['Type']; } //MySQL 5
elseif ( isset( $result[0][0]['Type'] ) ) { $types =
$result[0][0]['Type']; } //MySQL 4
else   { return array(); } //types return not accounted for

//Get the values
$values = explode(',',
preg_replace(/(enum)\('(.+?)'\)/,\\2, $types) );

//explode doesn't do assoc arrays, but cake needs an assoc to
assign values
$assoc_values = array();
foreach ( $values as $value ) {
//leave the call to humanize if you want it to look pretty
$assoc_values[$value] = Inflector::humanize($value);
}

return $assoc_values;

} //end getEnumValues


Como vc pode ver a solução não é minha, achei a sugestão na internet e
considerei uma alternativa boa já que tenho alguns campos enum ou SET nas
minhas tabelas.

Abraço,
Benito.

2008/1/30 Fênix [EMAIL PROTECTED]:


 Oi pessoal,

 Estou com o seguinte problema.Tenho um campo da tabela que é estado
 civil, este campo é do tipo enum, esta da seguinte forma no banco:
 escivil enum('Solteiro(a)','Casado(a)',''Viuvo(a),'Separado(a)');

 e um outro campo do tipo set, onde a pessoa informa se tem algum tipo
 de necessidade especial.
  prt_nec set('fisica','visual,'auditiva');

 ao utilizar o bake vi que ele não consegue gerar o formulário
 corretamente para esses campos.

 gostaria de saber como utilizar o helper do html e o que deveria fazer
 para que os valores do banco fossem lidos. e passados corretamente.
 


--~--~-~--~~~---~--~~
Você recebeu esta mensagem porque está inscrito no Grupo Cake PHP Português 
em Grupos do Google.
 Para postar neste grupo, envie um e-mail para cake-php-pt@googlegroups.com
 Para cancelar a sua inscrição neste grupo, envie um e-mail para [EMAIL 
PROTECTED]
 Para ver mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-BR
-~--~~~~--~~--~--~---



Re: campos set e enum

2008-01-30 Por tôpico Tulio Faria

Eu costumo colocar as opções no model, faz mas sentido pra mim.

algo como:

class Cliente extends AppModel{
 .
 .
 .
   var $situacoes = array(A=Aaa, B=Bbb);

}

no controller vc seta esses valores pro view e no view vc mostra... Se
precisar alterar muda só no model...

inté

On 30 jan, 11:26, wc [EMAIL PROTECTED] wrote:
 Não serve você criar na unha o array com as opções na view:
 ?php
 echo $form-select ('escivil',
 array('Solteiro(a)'='Solteiro(a)','Casado(a)'='Casado(a)','Viuvo(a)'='Viuvo(a)','Separado(a)'='Separado(a)'));
 ?

 Ou você quer algo que caso você adicionar mais alguma opção a esses campos
 na base não precise mexer nas  views?

 2008/1/30 Fênix [EMAIL PROTECTED]:





  Oi pessoal,

  Estou com o seguinte problema.Tenho um campo da tabela que é estado
  civil, este campo é do tipo enum, esta da seguinte forma no banco:
  escivil enum('Solteiro(a)','Casado(a)',''Viuvo(a),'Separado(a)');

  e um outro campo do tipo set, onde a pessoa informa se tem algum tipo
  de necessidade especial.
   prt_nec set('fisica','visual,'auditiva');

  ao utilizar o bake vi que ele não consegue gerar o formulário
  corretamente para esses campos.

  gostaria de saber como utilizar o helper do html e o que deveria fazer
  para que os valores do banco fossem lidos. e passados corretamente.

 --
 :wq
 ***
 *Wiliam Camilo de Andrade *
 *wc.sama arroba gmail.com *
 * Bacharelado em Informática - 04 *
 *  Universidade de São Paulo - ICMC - São Carlos  *
 ***
 
 Por que o Mário foi ao psicólogo?
 Porque ele tava passando por uma fase difícil!

 São necessários 42 músculos para socar alguém e apenas 4 para estender meu
 dedo médio e mandá-lo para aquele lugar.

 http://grad.icmc.usp.br/~wc/google.jpg-- o que vamos fazer hoje a
 noite??

 Feira da fruta é a feira mais cara
 A onde só da pilão
 Tem a feira tamanho família
 Tem até a feira do melão
 
--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo Cake PHP Português do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---



Re: campos set e enum

2008-01-30 Por tôpico Rafael Barbosa

Bom, você pode fazer das 2 formas apresentadas, e funcionaria.
Mas o melhor jeito é usar tabelas de apoio pra isso.
Você vai ficar com 2 modelos extras mas é uma solução bem mais elegante.

2008/1/30 Tulio Faria [EMAIL PROTECTED]:

 Eu costumo colocar as opções no model, faz mas sentido pra mim.

 algo como:

 class Cliente extends AppModel{
  .
  .
  .
var $situacoes = array(A=Aaa, B=Bbb);

 }

 no controller vc seta esses valores pro view e no view vc mostra... Se
 precisar alterar muda só no model...

 inté

 On 30 jan, 11:26, wc [EMAIL PROTECTED] wrote:
  Não serve você criar na unha o array com as opções na view:
  ?php
  echo $form-select ('escivil',
  array('Solteiro(a)'='Solteiro(a)','Casado(a)'='Casado(a)','Viuvo(a)'='Viuvo(a)','Separado(a)'='Separado(a)'));
  ?
 
  Ou você quer algo que caso você adicionar mais alguma opção a esses campos
  na base não precise mexer nas  views?
 
  2008/1/30 Fênix [EMAIL PROTECTED]:

 
 
 
 
 
   Oi pessoal,
 
   Estou com o seguinte problema.Tenho um campo da tabela que é estado
   civil, este campo é do tipo enum, esta da seguinte forma no banco:
   escivil enum('Solteiro(a)','Casado(a)',''Viuvo(a),'Separado(a)');
 
   e um outro campo do tipo set, onde a pessoa informa se tem algum tipo
   de necessidade especial.
prt_nec set('fisica','visual,'auditiva');
 
   ao utilizar o bake vi que ele não consegue gerar o formulário
   corretamente para esses campos.
 
   gostaria de saber como utilizar o helper do html e o que deveria fazer
   para que os valores do banco fossem lidos. e passados corretamente.
 
  --
  :wq
  ***
  *Wiliam Camilo de Andrade *
  *wc.sama arroba gmail.com *
  * Bacharelado em Informática - 04 *
  *  Universidade de São Paulo - ICMC - São Carlos  *
  ***
  
  Por que o Mário foi ao psicólogo?
  Porque ele tava passando por uma fase difícil!
 
  São necessários 42 músculos para socar alguém e apenas 4 para estender meu
  dedo médio e mandá-lo para aquele lugar.
 
  http://grad.icmc.usp.br/~wc/google.jpg-- o que vamos fazer hoje a
  noite??
 
  Feira da fruta é a feira mais cara
  A onde só da pilão
  Tem a feira tamanho família
  Tem até a feira do melão
  
 




-- 
Rafael Barbosa
Analista de Sistemas Web
Gradua Networks

--~--~-~--~~~---~--~~
Recebeu esta mensagem porque está inscrito em Grupo Cake PHP Português do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
cake-php-pt@googlegroups.com
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~--~~~~--~~--~--~---