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
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:
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.