Laravel obtiene cadena de consulta

2 minutos de lectura

Avatar de usuario del jugador
jugador

tengo la siguiente url
http://project.su/?invitee=95

primero quiero comprobar el invitee en url, si la url tiene invitee luego obtener el valor.

Lo que he probado (controlador):

if(!empty($request->get('invitee'))){
   $user->invitee = $request->get('invitee');
}

El siguiente código no funciona.

quiero guardar el invitee resultado (id) en la base de datos.

Gracias.

  • Deberías usar $_GET['invitee'] porque esta es una cadena de consulta que no forma parte del enrutamiento de Laravel.

    – la caída

    3 de agosto de 2016 a las 7:32

Avatar de usuario de Depzor
Depzor

Para determinar si un valor de entrada está presente:

if ($request->has('invitee')) {
   $user->invitee = $request->input('invitee');
}

El tiene El método devuelve verdadero si el valor está presente y no es una cadena vacía:

  • Esto solo funciona para los parámetros de URL, no para la cadena de consulta.

    – la caída

    3 de agosto de 2016 a las 7:31

  • Estoy completamente en desacuerdo @TheFallen

    – Depzor

    3 de agosto de 2016 a las 7:33

  • Este método funciona para mí en la cadena de consulta. Por cierto, gracias @Depzor 🙂

    – Yusril Herlian Syah

    29 de agosto de 2017 a las 8:10

  • Este método también funcionó para mí en la cadena de consulta LARAVEL 8

    –Diego Lope Loyola

    7 mayo 2022 a las 15:44

  • este método funciona perfecto para la cadena de consulta, gracias @Depzor

    –Mohsin Khan

    15 de agosto de 2022 a las 11:59

Avatar de usuario de Vikram Bhaskaran
Vikram Bhaskarán

En lo que respecta a Laravel 5.7, la forma preferida de recuperar los parámetros de consulta es

if( $request->has('invitee') ) {
    $request->query('invitee');
}

o usando la función auxiliar si no tiene acceso a $request

request()->query('invitee');

En laravel 5.7, también podemos usar request()->invitee. Al usar esto, podemos obtener tanto parámetros de ruta de URL como parámetros de consulta. Digamos que tenemos debajo de la URL

http://localhost:8000/users/{id}?invitee=95

Leer id y inviteenosotros podemos usar

$id  ✔
$invitee ✖ - Invalid
request()->id ✔
request()->invitee ✔

Puede obtener información mediante:

$invitee = Input::get('invitee');

Para más de 5.*

$invitee = $request->input('invitee');

O

$invitee = Request::input('invitee');

para comprobar si invitee el parámetro existe:

if($request->has('invitee')) {
    // ...
}

Para obtener el valor de invitee:

$invitee = $request->input('invitee');

Avatar de usuario de Alex
Alex

Estás llamando $user->save() ¿en cualquier lugar? Deberías llamar $user->save() para persistir realmente los datos.

Siempre puedes consultar llamando dd($user); justo después de la segunda línea en su ejemplo, si le preocupa que no esté configurado correctamente, de esta manera puede ver qué atributos están configurados en el $user objeto.

También puedes reemplazar !empty($request->get('invitee')) con $request->has('invitee').

¿Ha sido útil esta solución?