Yii Framework Forum: Allowed memory no filter do CGridView - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Allowed memory no filter do CGridView Excedendo a cota Rate Topic: -----

#1 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 824
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 30 September 2010 - 08:11 AM

Olá a todos,

Estou com um problema digamos que 'grande' hehe

Tenho uma tabela com mais de 7.000 registro.

Hoje começou a dar problema na listagem do registro no 'filter' do CGridView, o erro é o seguinte:

[30-Sep-2010 10:05:00] PHP Fatal error:  Allowed memory size of 33554432 bytes exhausted (tried to allocate 24 bytes) in /home/xxxx/yiilite.php on line 7678


e filtro é o seguinte:
array(
            'name' => 'codpaciente',
            'filter' => CHtml::listData(Paciente::model()->findAll(), 'codpaciente', 'codigoNome'),
            'value' => 'Paciente::model()->findByPk($data->codpaciente)->codigoNome',
            'header' => 'Paciente',
            'headerHtmlOptions' => array(
                'nowrap' => 'nowrap',
                'class' => 'ui-widget-header',
            ),
            'htmlOptions' => array(
                'nowrap' => 'nowrap',
            ),
        ),


Quando eu comento o 'filter' ele volta a funcionar, na real na hora que acessa essa página, ele dá um lag de uns 5s pra carregar esse <select> com mais de 7mil registro

Alguma solução? Sem setar set_time_limit, e memory_limit, o memory_limit no php.ini ta 32M, já setei no ini_set() até 256MB e não solucionou.
Newerton Vargas de Araújo
0

#2 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 30 September 2010 - 08:42 AM

Hum, eu não uso estes filtros. Normalmente deixo fora do Grid, mas, acho que 7000 registros pra um select(A tag) é muita coisa. 

Será que não da pra usar um autocomplete ai não??? 

Pelo que eu ví, da pra fazer sem filtro e gerar um autocomplete com javascript puro, mas fica meio gambiarra. 





Every solution creates a problem.
twitter.com/nenhumnick
0

#3 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 824
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 30 September 2010 - 09:48 AM

View PostDaniel A. Bastos, on 30 September 2010 - 08:42 AM, said:

Hum, eu não uso estes filtros. Normalmente deixo fora do Grid, mas, acho que 7000 registros pra um select(A tag) é muita coisa. 

Será que não da pra usar um autocomplete ai não??? 

Pelo que eu ví, da pra fazer sem filtro e gerar um autocomplete com javascript puro, mas fica meio gambiarra. 


Então, 7000 e muita coisa mesmo hehe
E o pior disso que no formulário de atendimento tem esse <select> agora que lembrei, depois vou até ver!

Acho que vou deixar o <input> mesmo, por que o Grid é dinâmico!
Ai se ela quizer procurar é só digitar o nome e ENTER.

Só que tem uns topeira acha que isso fica mais viável para localizar o cliente, eu tinha deixado o <input> ai pediram pra colocar o <select>, deu no que deu hehehe

Mais valeu, vou lá ver o formulário, senão já recebo email de reclamação!
Newerton Vargas de Araújo
0

#4 User is offline   Daniel Augusto Bastos 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 347
  • Joined: 25-May 09
  • Location:Rio de Janeiro - Brasil

Posted 01 October 2010 - 09:04 AM

Acho que vc pode fazer o seguinte, usar esse input ai comum, e usar o autocomplete com javascript puro do jquery ui (se vc usa o Jquery ui no seu projeto) 

vc pode importar os js usando Yii::app()->clientScript->registerCoreScript(); pra importar os javascripts dele que já vem com o Yii.

Pra ver as libs do JQuery ui e seus nomes pra poder importar, vc pode olhar o arquivo \framework\web\js\packages.php dentro da pasta do framework.

E fazer o javascript de chamada na mão seguindo a documentação oficial. http://jqueryui.com/...s/autocomplete/

Não tentei, mas acho que vai funcionar numa boa. 

Ou criar uma nova classe baseada no CGridColumn e usar no seu grid pra fazer isso pra vc. 





Every solution creates a problem.
twitter.com/nenhumnick
0

#5 User is offline   Newerton 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 824
  • Joined: 27-April 10
  • Location:Campo Grande/MS - Cambé/PR, Brasil

Posted 02 October 2010 - 08:47 AM

View PostDaniel A. Bastos, on 01 October 2010 - 09:04 AM, said:

Acho que vc pode fazer o seguinte, usar esse input ai comum, e usar o autocomplete com javascript puro do jquery ui (se vc usa o Jquery ui no seu projeto) 

vc pode importar os js usando Yii::app()->clientScript->registerCoreScript(); pra importar os javascripts dele que já vem com o Yii.

Pra ver as libs do JQuery ui e seus nomes pra poder importar, vc pode olhar o arquivo \framework\web\js\packages.php dentro da pasta do framework.

E fazer o javascript de chamada na mão seguindo a documentação oficial. http://jqueryui.com/...s/autocomplete/

Não tentei, mas acho que vai funcionar numa boa. 

Ou criar uma nova classe baseada no CGridColumn e usar no seu grid pra fazer isso pra vc. 


Hoje resolvi colocar de volta ao normal, volto a funcionar! Vou dar uma olhada no phpinfo(), se houve alteração, Daniel, eu não vou me preocupar muito não, por que esses sistema ta online para o cliente testar, ele vai ser instalado localmente, com um servidor apache.

Mais vou guardar essa dica para futuros projetos, vai que volta o problema com novos clientes.
Newerton Vargas de Araújo
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users