Comprobar si elemento existe en AR relation

Saludos :

Tengo en mi aplicacion articulos con votos y usuarios. En la vista del articulo obtengo lo votos del articulo mediante una relacion ($articulos->votosc) y en este array tengo el id de usuario. Necesito comprobar si el usuario ya ha votado esta articulo pero no doy con la forma adecuada :

<?php foreach($articulo->votosc as $voto): ?>

<?php if($voto->usuario_id==Yii::app()->user->id) {?>

Votado

<?php }else{ ?>

Votar

<?php } ?>

<?php endforeach; ?>

Necesitaría algo más sencillo como :

<?php if(!in_array($articulo->votosc, Yii::app()->user->id)){ ?>

Votar

<?php } ?>

pero me da error : in_array() [<a href=‘function.in-array’>function.in-array</a>]: Wrong datatype for second argument

Si alguien me puede orientar, GRACIAS

Por que no haces una busqueda directamente sobre la tabla con la condicion usuario_id==Yii::app()->user->id

algo como




<?php 

  if(Votos::model()->find("usuario_id=Yii::app()->user->id")===null)

      echo Votar;

 else

    echo Votado;

 ?>



[edit]

tambien en la condicion tienes que poner algo como




"$articulo->idArticulo=idArticulo"



los nombres de los campos no los se :P

Gracias Horacio, a veces uno de tanto mirar la pantalla solo ve un camino y no miras todas las posibilidades para llegar al mismo punto.

Una pregunta de buenas prácticas, ¿es bueno meter una consulta como esta (


<?php if(voto::model()->findByAttributes(array('usuario_id'=>Yii::app()->user->id,'articulo_id'=>$articulo->id))===null) {?>

) en la vista?, no sería más adecuado al modelo MVC crear una variable true or false en el controlador y pasarla a la vista?

Si. Lo ideal es que la vista sea solo eso: una vista. En el controlador haces las cosas (o mejor en el modelo, ya que es el modelo el que sabe si es true o false)