livewire-datatables
livewire-datatables copied to clipboard
Attempt to read property "preventExport" on int
Hello guys, I have the following problem, install livewire according to the indicated steps and when showing a datatable and exporting it throws the following message:
Attempt to read property "preventExport" on int
View:
<livewire:datatable
model="App\Models\User"
name="all-users"
exclude="created_at,updated_at,id"
exportable
complex="true"
/>
Error Detail
public function getExportResultsSet()
{
return $this->mapCallbacks(
$this->getQuery()->when(count($this->selected), function ($query) {
return $query->havingRaw('checkbox_attribute IN (' . implode(',', $this->selected) . ')');
})->get(),
true
)->map(function ($item) {
return collect($this->columns())->reject(function ($value, $key) {
return $value->preventExport == true || $value->hidden == true;
})->mapWithKeys(function ($value, $key) use ($item) {
return [$value->label ?? $value->name => $item->{$value->name}];
})->all();
});
}
more detail
https://flareapp.io/share/OmVDER87
greetings and thank you very much
Did you manage to solve it? I have the same problem
Looks like this is broken in the latest release. Although seems to be deeper than just the export as if you manually comment out those references it goes on to error out with issues in the hidden and name columns too.
Same problem...
I have same problem when using <livewire:datatables ..... />
my solution is creating datatable component first and load it into view.
i have same problem when using the data for another user but if dd all data i get
Found the solution
public function getExportResultsSet() { return $this->mapCallbacks( $this->getQuery()->when(count($this->selected), function ($query) { return $query->havingRaw('checkbox_attribute IN (' . implode(',', $this->selected) . ')'); })->get(), true )->map(function ($item) { return collect($this->columns)->reject(function ($value, $key) { return $value['preventExport'] == true || $value['hidden'] == true; })->mapWithKeys(function ($value, $key) use ($item) { return [$value['label'] ?? $value['name'] => $item->{$value['name']}]; })->all(); }); }