<?xml version="1.0" encoding="UTF-8"?><!-- generator="bbPress" -->

<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
<title>Dudas de cakephp &#187; Tag: aleatorio - Recent Posts</title>
<link>http://cakephp.hospedaxes.com/dudas/</link>
<description>Just another bbPress community</description>
<language>en</language>
<pubDate>Wed, 08 Feb 2012 17:00:08 +0000</pubDate>

<item>
<title>bernal en "listas en orden aleatorio con cakephp"</title>
<link>http://cakephp.hospedaxes.com/dudas/topic/listas-en-orden-aleatorio-con-cakephp#post-23</link>
<pubDate>Mie, 14 Oct 2009 09:13:01 +0000</pubDate>
<dc:creator>bernal</dc:creator>
<guid isPermaLink="false">23@http://cakephp.hospedaxes.com/dudas/</guid>
<description>&#60;p&#62;Antes de nada, bienvenido al blog, se agradecen tanto vuestras visitas como vuestra colaboración.&#60;/p&#62;
&#60;p&#62;Vayamos por orden:&#60;/p&#62;
&#60;p&#62;La primera duda, mostrar los listados con un orden aleatorio es sencillo, para eso utilizaremos la función RAND de MySQL, para eso, habrá que llamar al find del modelo de la siguiente forma&#60;/p&#62;
&#60;p&#62;$this-&#38;gt;Modelo-&#38;gt;find(&#38;#39;all&#38;#39;, array(&#38;#39;order&#38;#39; =&#38;gt; &#38;#39;RAND()&#38;#39;));&#60;/p&#62;
&#60;p&#62;De esta forma, cada vez que actualizases cambiará el orden de los elementos que te muestra.&#60;br /&#62;
Esta función no es demasiado eficiente, podrás usarla sin problemas con pocos elementos, pero a la hora de usarla sobre muchos elementos sería mejor utilizar algún modo no tan directo, como ordenar el array con los datos en el controlador antes de pasarlo a la vista.&#60;/p&#62;
&#60;p&#62;En cuanto a la segunda duda, para las relaciones N:M, como la del ejemplo que me comentas, cakephp tiene hasAndBelongsToMany.&#60;br /&#62;
Se utilizará esta relación ya que cada usuario puede tener muchos amigos y además ser amigo de muchos usuarios.&#60;br /&#62;
El funcionamiento es sencillo, habría que crear una tabla intermedia, podremos utilizar la tabla que me indicas en tu post usuario_amigos, esta tendrá tres campos, un id, id_usuario y id_amigo.&#60;br /&#62;
Habrá que modificar el modelo usuario para establecer la asociación, será algo como esto:&#60;/p&#62;
&#60;p&#62;# class Usuario extends AppModel {&#60;br /&#62;
# var $name = &#38;#39;Usuario&#60;br /&#62;
# var $hasAndBelongsToMany = array(&#60;br /&#62;
# &#38;#39;Amigos&#38;#39; =&#38;gt;&#60;br /&#62;
# array(&#60;br /&#62;
# &#38;#39;className&#38;#39; =&#38;gt; &#38;#39;Usuario&#38;#39;,&#60;br /&#62;
# &#38;#39;joinTable&#38;#39; =&#38;gt; &#38;#39;usuario_amigos&#38;#39;,&#60;br /&#62;
# &#38;#39;foreignKey&#38;#39; =&#38;gt; &#38;#39;usuario_id&#38;#39;,&#60;br /&#62;
# &#38;#39;associationForeignKey&#38;#39; =&#38;gt; &#38;#39;amigo_id&#38;#39;,&#60;br /&#62;
# &#38;#39;unique&#38;#39; =&#38;gt; true,&#60;br /&#62;
# &#38;#39;conditions&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;fields&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;order&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;limit&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;offset&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;finderQuery&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;deleteQuery&#38;#39; =&#38;gt; &#38;#39;&#38;#39;,&#60;br /&#62;
# &#38;#39;insertQuery&#38;#39; =&#38;gt; &#38;#39;&#38;#39;&#60;br /&#62;
# )&#60;br /&#62;
# );&#60;br /&#62;
# }&#60;/p&#62;
&#60;p&#62;Con esto, al hacer un find de los usuario te aparecerá una lista con sus amigos y también los usuarios de los que es amigo.&#60;/p&#62;
&#60;p&#62;El código es orientativo, no lo he probado, por lo que no puedo confirmar que funcione directamente, si tienes algún problema al utilizarlo avisa e intentaré ayudarte.&#60;/p&#62;
&#60;p&#62;Espero haber solucionado tus dudas. Un saludo.
&#60;/p&#62;
</description>
</item>
<item>
<title>yoelkj en "listas en orden aleatorio con cakephp"</title>
<link>http://cakephp.hospedaxes.com/dudas/topic/listas-en-orden-aleatorio-con-cakephp#post-20</link>
<pubDate>Lun, 05 Oct 2009 19:14:47 +0000</pubDate>
<dc:creator>yoelkj</dc:creator>
<guid isPermaLink="false">20@http://cakephp.hospedaxes.com/dudas/</guid>
<description>&#60;p&#62;Hola.. soy nuevo en este blog y me alegra mucho haber encontrado este sitio en español.&#60;/p&#62;
&#60;p&#62;tengo dos dudas la primera es como hacer consultas que me muestren listas en orden aleatorio. al mmostrar la paginas mostrara un resutado y al actualizarla mostrara la misma lista pero en otro orden.&#60;/p&#62;
&#60;p&#62;la otra duda es acerca de las convenciones de cakephp para los modelos. tengo la tabla usuarios y una tabla usuario_amigos eh tratado de hacer una relacion de muchos a muchos pero la misma tabla usuario son amigos&#60;/p&#62;
&#60;p&#62;agradezco su atencion y su pronta ayuda... gracias.. y felicidades por el blog.. me pasare revisando los temas para no hacer preguntas repetidas .. :D gracias
&#60;/p&#62;
</description>
</item>

</channel>
</rss>

