LiveWire PowerGrid: Initial `user_id` filterkonflikte mit typed` user_name` filterPhp

PHP-Programmierer chatten hier
Anonymous
 LiveWire PowerGrid: Initial `user_id` filterkonflikte mit typed` user_name` filter

Post by Anonymous »

Ich verwende livewire powerGrid und möchte nur die Datensätze des aktuellen Benutzers zum ersten Last anzeigen. Ermöglichen Sie jedoch das Filtern mit dem Benutzernamen.

Code: Select all

public function datasource(): Builder
{
return Worklog::query()
->when($this->task_code, function ($query) {
$query->where('projects_tasks.code', $this->task_code);
})
->when(auth()->user()->is_admin !== 1, function ($query) {
$query->where('user_id', auth()->id());
})
->leftJoin('projects_tasks', 'projects_tasks.id', '=', 'worklogs.task_id')
->leftJoin('projects', 'projects.id', '=', 'projects_tasks.project_id')
->leftJoin('users', 'users.id', '=', 'worklogs.user_id')
->select('worklogs.*', 'projects.name', 'users.name as user_name', 'projects.id as project_id');
}
Filter:

Code: Select all

public function filters(): array
{
$filters = [
Filter::inputText('user_name', 'users.name')
->operators(['contains','contains_not','starts_with','ends_with']),
Filter::boolean('billable','worklogs.billable')
->label('Yes', 'No'),
Filter::datetimepicker('date', 'date'),
];

if (!$this->task_code) {
$filters[] = Filter::inputText('name', 'projects.name')
->operators(['contains','contains_not','starts_with','ends_with']);
}

return $filters;
}
Problem:

Bei der anfänglichen Last endet die Abfrage user_id = auth ()-> id () , was korrekt ist. auth ()-> id () , der 0 Ergebnisse zurückgeben kann, wenn der Name nicht zum aktuellen Benutzer gehört. Typisiert? < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post