Level 122
the problem is that your view is not sending the data you say you need in your component
class MealServices extends Component {
public $user_id;
protected $listeners = ['barcodeScanned' => 'addMealService'];
public function addMealService($data)
{
\Log::info('Data received in Livewire component:', $data);
// Assuming 'user_id' is correct and should be used
$user = users_tbl::find($data['user_id']);
if ($user) {
meal_service::create([
'user_id' => $data['user_id'],
'scan_date' => Carbon::now(),
'type' => 'test', // Provide default if 'type' is not available
]);
$this->dispatch('mealServiceAdded');
} else {
$this->dispatch('error', 'User not found.');
}
}
public function render()
{
$mealServices = meal_service::with('user')->orderBy('scan_date', 'desc')->get();
return view('livewire.meal-services', ['mealServices' => $mealServices]);
}
barcodeInput.addEventListener('input', function (event) {
var value = event.target.value;
console.log('Barcode Input:', value);
console.log('Valid barcode detected:', value);
// window.livewire.emit('barcodeScanned', { user_id: value, type: 'meal' });
Livewire.dispatch('barcodeScanned', { user_id: value, type: 'meal' });
barcodeInput.value = ''; // Clear the input after processing
});
Please or to participate in this conversation.