Yii Framework Forum: Comprobar si elemento existe en AR relation - Yii Framework Forum

Jump to content

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

Comprobar si elemento existe en AR relation Rate Topic: -----

#1 User is offline   netbur 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 03-June 09

Posted 15 January 2010 - 08:22 AM

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
0

#2 User is offline   gallego123 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 535
  • Joined: 11-August 09
  • Location:Argentina

Posted 15 January 2010 - 08:41 AM

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

This post has been edited by Horacio Segura: 15 January 2010 - 08:44 AM

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
0

#3 User is offline   netbur 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 42
  • Joined: 03-June 09

Posted 18 January 2010 - 06:14 AM

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?
0

#4 User is offline   PoL 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 506
  • Joined: 05-November 08
  • Location:Buenos Aires, Argentina

Posted 18 January 2010 - 06:26 AM

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)
Don't say what you think, think what you say
The problem is communication! Excess of communication!
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