es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Variable indefinida ‘$qrcode’ en blade laravel.

Estoy trabajando en un proyecto de Laravel sobre cómo generar un código QR con información encriptada. Sin embargo, cuando llamo a la variable desde mi archivo blade, me dice ‘Variable no definida $qrcode’. ¿Podría obtener algo de ayuda?

Así es como se ve mi controlador (PostController):

public function index()
{
    $post = Post::all();
    return view('blog.index', compact('post'));
}

public function create()
{
    return view('blog.create');
}

public function store(Request $request)
{
    $post = new Post;
    $post->randomnumber = random_int(100000, 999999);
    $post->user_id = Auth::id();
    $post->unit = $request->input('unit');
    $post->guestname = $request->input('guestname');
    $post->guestphone = $request->input('guestphone');
    $post->guestemail = $request->input('guestemail');
    $post->guestic = $request->input('guestic');
    $post->guestcarplate = $request->input('guestcarplate');
    $post->numberofguests = $request->input('numberofguests');
    $post->date = $request->input('date');
    $post->time = $request->input('time');
    $post->hash = Hash::make($post->randomnumber);
    $post->save();
    return view('blog.qrcode');
}

public function generate ($id)
{
    $post = Post::findOrfail($id);
    $qrcode = QrCode::size(300)->generate($post->hash);
    return view('blog.qrcode', compact('qrcode'));
}

Así es como se ve mi ruta:

Route::get('posts/create', 'PostController@create')->middleware('auth');
Route::post('posts', 'PostController@store');
Route::get('/qrcode/{id}', 'PostController@generate');

Y así es como se ve mi archivo blade (qrcode.blade.php):

@extends('layouts.frontend')

@section('content')
    <h4>
        Código QR
    </h4>

    {{ $qrcode }}
@endsection
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la variable $qrcode no se está pasando correctamente al archivo blade. La función compact se utiliza para pasar variables a la vista, pero parece que está mal escrita en tu método generate. Debería ser:

    return view('blog.qrcode', compact('qrcode'));
    

    Adicionalmente, asegúrate de que el parámetro $id se esté pasando correctamente al método en la ruta. Puedes intentar depurar añadiendo una instrucción dd($id) al principio del método generate para asegurarte de que se está recuperando correctamente. Si todo está funcionando correctamente, el código QR debería mostrarse en el archivo qrcode.blade.php.

Comments are closed.