Hola! Estuve haciendo los links de platos y menus, por ejemplo en menú agregué: $response->assertJsonPath('data.menus.0.links.self', route('restaurants.menus.show', [$this->restaurant, $this->menus->first()])); luego vi que en el repo que usaste: $response->assertJsonPath('data.menus.0.links.self', route('restaurants.menus.index', $this->restaurant)); Mi duda es si debería usar "index" o "show", en caso de usar "index" toda la lista va a tener la misma ruta en "links", en cambio con "show" tendría cada uno sus datos correspondientes. Lo mismo me sucede con los platillos. Gracias!
Hola, hay muchas formas, podrías usar un join directamente (esto te daría mas control), imagina que tienes la tabla posts y cada post tiene una categoría, podrías hacer algo como: Posts::join('categories', 'posts.category_id', '=', 'categories.id')->where('categories.name', 'like', "%{$busqueda}%") Desde luego es mas código, hay que saber sql y te traerías los datos de la categoría también, la otra opción seria usar whereHas: Post::whereHas('category', function (Builder $query) { $query->where('name', 'like', "%{$busqueda}%"); }) Para este caso es necesario tener la relación llamada 'category' en tu modelo Post, puede ser whereHas o orWhereHas dependiendo de lo que busques. Si quisieras integrar lo que se ve en el video, podrías poner en la función searchFields algo así ['category.name', ...resto de tus campos] y en el trait tendrías que hacer una función que separe esos campos para aplicarles individualmente el whereHas o orWhereHas.
Hola que gran video he aprendido muchas cosa
Hola!
Estuve haciendo los links de platos y menus, por ejemplo en menú agregué:
$response->assertJsonPath('data.menus.0.links.self', route('restaurants.menus.show', [$this->restaurant, $this->menus->first()]));
luego vi que en el repo que usaste:
$response->assertJsonPath('data.menus.0.links.self', route('restaurants.menus.index', $this->restaurant));
Mi duda es si debería usar "index" o "show", en caso de usar "index" toda la lista va a tener la misma ruta en "links", en cambio con "show" tendría cada uno sus datos correspondientes.
Lo mismo me sucede con los platillos. Gracias!
Tienes razón, se me debió haber escapado, ya deberías ver el código correcto en el repo
Hola, he aprendido mucho con tus vídeos, tengo una pregunta, ¿cómo puedes realizar filtros para relaciones anidadas?
Hola, hay muchas formas, podrías usar un join directamente (esto te daría mas control), imagina que tienes la tabla posts y cada post tiene una categoría, podrías hacer algo como:
Posts::join('categories', 'posts.category_id', '=', 'categories.id')->where('categories.name', 'like', "%{$busqueda}%")
Desde luego es mas código, hay que saber sql y te traerías los datos de la categoría también, la otra opción seria usar whereHas:
Post::whereHas('category', function (Builder $query) {
$query->where('name', 'like', "%{$busqueda}%");
})
Para este caso es necesario tener la relación llamada 'category' en tu modelo Post, puede ser whereHas o orWhereHas dependiendo de lo que busques.
Si quisieras integrar lo que se ve en el video, podrías poner en la función searchFields algo así ['category.name', ...resto de tus campos] y en el trait tendrías que hacer una función que separe esos campos para aplicarles individualmente el whereHas o orWhereHas.
La invitacion de discord no funciona
Listo ya lo corregí discord.gg/EwBH4NM6