Actualizar modelo usando onclick o ajaxLink

Saludos :

He creado un gestor de banners para mi aplicación, ya se encuentra operativo. He pensado que sería bueno contar los clicks que recibe cada banner, así que he pensado en como hacerlo y aunque se me ocurren 2 maneras no encuentro la solución y no se si es buena idea.

La primera es hacerlo con ajaxLink :




<?php echo CHtml::ajaxLink(CHtml::image(Yii::app()->baseUrl."/images/banners/".$banner->imagen, $banner->nombre, array('class'=>'noborder', 'height'=>100, 'width'=>300)) , '/banner/click/id/'.$banner->id);?>



Pero esto se supone que actualiza una capa, pero lo que tengo que hacer es redireccionar a la url del banner, no se si en la función puedo hacer algo, pero a mi no me funciona :




public function actionClick()

	{

				

		if($id!==null || isset($_GET['id']))

			$model=banner::model()->findbyPk($_GET['id']);

			

		if($model===null)

				throw new CHttpException(500,'Se ha producido un error.');

						

		$model->clicks = $model->clicks + 1;

		

		if($model->save())

			$this->redirect(($model->url);

			

	}



La otra manera sería hacerlo con un onclik pero todavía no he mirado como hacerlo.

¿Es alguna de estas la manera más optima o se os ocurre otra mejor?, gracias

Los banners redireccionan a algun controlador/accion de yii… o son enlaces externos.

En el primero de los casos podes agregar un una variable get al link, suponete contar=1

Despues en la accion, preguntas por el parámetro y si es uno, actualizas el contador (que imagino que almacenarás en algun lugar de la base)

Esto de contar=1 es porque eso lo pones solo en los banners (que es lo que queres contar) si otra parte de la aplicacion tambien hacer referencia a ese controlador/accion pero no debe ser contado, directamente no agregas nada (o sea no tenes que buscar todos los enlaces para agregarles la variable get)

Si son externos vas a tener que seguir por la via que venís me parece.