Como alterar o link do botão "update" na pagina admin?

Pessoal seguinte, eu fiz outra pagina identica ao “admin” criada pelo gii na geração do crud, so que nessa que eu alterei o ‘$criteria’ da function search, para exibir somente o resultado da minha tabela que tenha o campo “Status” da tebela igual a 1.

Deu certo, pois só exibiu o que eu queria, porem eu preciso alterar o link dos botões de “lupa”, “lapis” e o de “xis”, que encaminham para os seus respectivos links (view, update e apagar), acontece que como eu copei o codigo da pagina admin criada pelo gii e coloquei na minha outra pagina que chamei de “adminchamadosequipe” esses botões continuam apontando para “view”, “update”… porém precisava que nessa página que eu criei esses botões encaminhassem para “viewchamadosequipe” e o ‘lapis’ encaminhasse para “updatechamadosequipe”, mas não sei aonde altero isso, pesquisei ja um bocado e não achei… quem puder me ajudar agradeço muito. vlw!

Marcola,

Boa noite,

Tente o código abaixo ao final do seu Cgridview:


array(

    'class' => 'CButtonColumn',

    'template' => '{view}{update}{delete}',

    'buttons' => array(

        'view' => array(

            'url' => '$this->grid->controller->createUrl("visualizar",array("id"=>$data->primaryKey))',

        ),

        'update' => array(

            'url' => '$this->grid->controller->createUrl("alterar",array("id"=>$data->primaryKey))',

        ),

        'delete' => array(

            'url' => '$this->grid->controller->createUrl("excluir",array("id"=>$data->primaryKey))',

        ),

    ),

),

Abraços!

Pow Fábio, tu sempre me ajudando aew… pow vou ter que pedir para mostrar como fica…não deu certo de forma alguma aqui…

ta ai meu codigo, tentei colocar após o fechamento do array (‘class’=>‘CButtonColumn’,), mas não deu certo…




<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'chamado-grid',

	'dataProvider'=>$model->searchchamadosequipe(),

	'filter'=>$model,

	'columns'=>array(

		'NUMERO',

		'CRITICIDADE',

		'DESCRICAO',

		'CATEGORIA',

		'TIPO',

		'DATA',

		'HORA',

		'MATRICULA_USUARIO',

		'ID_FUNCIONARIO_FUNCAO_EQUIPE',

		'STATUS',

		

		array(

			'class'=>'CButtonColumn',

		//'{view}{update}{delete}'

                'template' => '{update}{delete}',

                'buttons' => array(

                /*'view' => array(

                'url' => '$this->grid->controller->createUrl("visualizar",array("id"=>$data->primaryKey))',

        ),*/

                'update' => array(

                'url' => '$this->grid->controller->createUrl("chamadosequipe",array("id"=>$data->primaryKey))',

        ),

                'delete' => array(

                'url' => '$this->grid->controller->createUrl("excluir",array("id"=>$data->primaryKey))',

        ),

    ),

),

                    

                    ),

	)); ?>



desculpa pela ignorância, mas não consegui fazer funfar aqui…

vlw!!

Marcola,

Não seria "viewchamadosequipe" e "updatechamadosequipe" ao invés de "chamadosequipe" e "excluir" no link? Quando você passa o mouse pelos botões, quais links aparecem no rodapé do navegador?

Fabio,

eu coloquei la no inicio “updatechamadosequipe” para exemplificar que era uma pagina de ‘update’ tbm… mas o nome dela eh apenas “chamadosequipe” mesmo…

no rodapé aparece "http://localhost/tcc/index.php?r=chamado/update&id=1"

vlw velho

Marcola,

Tem como você colar o código do controlador que chama essa view?

fabio,

acabei de ver que fiz alguma merda…

apesar de no link esta acessando "chamado/adminchamadosequipe" o sistema ta carregando a página admin normal "chamado/admin", pois as alterações que faço no arquivo na pagina não refletem, fica igual a admin…

vou ver o que fiz errado aqui…

acabei de ver aqui… no copiar e colar não alterei para renderizar para a pagina ‘adminchamadosequipe’… tava ‘admin’…

olha o controller




      public function actionAdminchamadosequipe()

	{

		$model=new CHAMADO('search');

		$model->unsetAttributes();  // clear any default values

		if(isset($_GET['CHAMADO']))

			$model->attributes=$_GET['CHAMADO'];

                

                //$criteria = new CDbCriteria();

                //$criteria->compare('STATUS', 1);

                //$model=CHAMADO::model()->find($criteria);

                

		$this->render('adminchamadosequipe',array(

			'model'=>$model,

		));

	}



a function search




public function searchchamadosequipe()

	{

		// @todo Please modify the following code to remove attributes that should not be searched.


		$criteria=new CDbCriteria;


		$criteria->compare('NUMERO',$this->NUMERO,true);

		$criteria->compare('CRITICIDADE',$this->CRITICIDADE,true);

		$criteria->compare('DESCRICAO',$this->DESCRICAO,true);

		$criteria->compare('CATEGORIA',$this->CATEGORIA,true);

		$criteria->compare('TIPO',$this->TIPO,true);

		$criteria->compare('DATA',$this->DATA,true);

		$criteria->compare('HORA',$this->HORA,true);

		//$criteria->compare('NOTIFICACAO',$this->NOTIFICACAO,true);

		$criteria->compare('DATA_DISTRIBUICAO',$this->DATA_DISTRIBUICAO,true);

		$criteria->compare('DATA_ATENDIMENTO',$this->DATA_ATENDIMENTO,true);

		$criteria->compare('MATRICULA_USUARIO',$this->MATRICULA_USUARIO,true);

		//$criteria->compare('ID_FUNCIONARIO_FUNCAO_EQUIPE',$this->ID_FUNCIONARIO_FUNCAO_EQUIPE,true);

		$criteria->compare('STATUS',1);


		return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

		));

	}




ai descobri que a pagina ta dando erro





CDbException


CDbCommand failed to execute the SQL statement: SQLSTATE[42703]: Undefined column: 7 ERROR: column "status" does not exist

LINE 1: SELECT COUNT(*) FROM "CHAMADO" "t" WHERE STATUS='1'

^. The SQL statement executed was: SELECT COUNT(*) FROM "CHAMADO" "t" WHERE STATUS=:ycp0


/var/www/html/tcc/yii/framework/db/CDbCommand.php(543)


531         {

532             if($this->_connection->enableProfiling)

533                 Yii::endProfile('system.db.CDbCommand.query('.$this->getText().$par.')','system.db.CDbCommand.query');

534 

535             $errorInfo=$e instanceof PDOException ? $e->errorInfo : null;

536             $message=$e->getMessage();

537             Yii::log(Yii::t('yii','CDbCommand::{method}() failed: {error}. The SQL statement executed was: {sql}.',

538                 array('{method}'=>$method, '{error}'=>$message, '{sql}'=>$this->getText().$par)),CLogger::LEVEL_ERROR,'system.db.CDbCommand');

539 

540             if(YII_DEBUG)

541                 $message.='. The SQL statement executed was: '.$this->getText().$par;

542 

543             throw new CDbException(Yii::t('yii','CDbCommand failed to execute the SQL statement: {error}',

544                 array('{error}'=>$message)),(int)$e->getCode(),$errorInfo);

545         }

546     }

547 

548     /**

549      * Builds a SQL SELECT statement from the given query specification.

550      * @param array $query the query specification in name-value pairs. The following

551      * query options are supported: {@link select}, {@link distinct}, {@link from},

552      * {@link where}, {@link join}, {@link group}, {@link having}, {@link order},

553      * {@link limit}, {@link offset} and {@link union}.

554      * @throws CDbException if "from" key is not present in given query parameter

555      * @return string the SQL statement




como se não tivesse colocandas as aspas na coluna status na clausura where do sql gerado…

q bosta…

tava mo feliz achando que a pagina tava ok…

:confused:

Marcola,

Você consegue executar a query abaixo direto no banco?


SELECT COUNT(*) FROM "CHAMADO" "t" WHERE STATUS='1' 

não, da erro falando que a coluna status não existe…

ai basta adicionar aspas ao nome da coluna que da certo, ficando assim

SELECT COUNT(*) FROM “CHAMADO” “t” WHERE “STATUS”=‘1’

Fábio,

desculpa ta incomodanddo tanto cara… mas estou precisando de bastante ajuda urgente, pq ta em cima minha apresentaçaõ … rsrsr

consegui resolver… la na minha function search alterei o “compare”, para "$criteria->condition=’“STATUS”=1’;, ai ele subiu a pagina ok agora…

mas os botoes estava dando erro, ele está procurando a coluna "ID" na minha tabela CHAMADO…




Property "CHAMADO.id" is not defined. 




ai alterei o array


"id"=>$data->primaryKey

para


"NUMERO"=>$data->primaryKey

aparentemente funcionou certo agora… o link no rodapé está trazendo "http://localhost/tcc/index.php?r=chamado/chamadosequipe&NUMERO=1"

kara muito obrigado mesmo!

Valeu Marcola,

Tomara que dê tudo certo na sua apresentação.

Qualquer coisa, estamos às ordens.

Abraços! :D