Re: campos set e enum
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
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
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
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
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
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 -~--~~~~--~~--~--~---