Панель поиска Yajra DataTable не работает - PullRequest
0 голосов
/ 28 августа 2018

Я использовал Left Join Query в файле с именем "directoryDataTable.php. Теперь проблема в том, что панель поиска Yajra DataTable не работает. Она не выдает ни ошибки, ни результата поиска.

Моя функция запроса к DataTable выглядит следующим образом.

 public function query()
{
    $id = \Illuminate\Support\Facades\Auth::user()->id;
    $directories = DB::table('directories')
        ->leftjoin('claimed', 'directories.id', '=','claimed.dir_id')
        ->select('directories.*')
        ->where('directories.user_id',$id)
        ->where('paymentStatus','1')
        ->whereNull('directories.deleted_at')
        ->orWhere('claimed.claimed_by',$id);


   return $this->applyScopes($directories);
}

Пожалуйста, помогите

1 Ответ

0 голосов
/ 28 августа 2018

Изменен запрос на,

public function query()
{
    $id = \Illuminate\Support\Facades\Auth::user()->id;
    $directories = DB::table('directories')
        ->leftjoin('claimed', 'directories.id', '=','claimed.dir_id')
        ->select('directories.*')
        ->where(function ($query) {
            $query->where('directories.user_id',\Illuminate\Support\Facades\Auth::user()->id)
                ->orWhere('claimed.claimed_by',\Illuminate\Support\Facades\Auth::user()->id);
        })
        ->where('paymentStatus','1')
        ->whereNull('directories.deleted_at')
        ;

    return $this->applyScopes($directories);

}

и в функции получения столбцов замените ['name' => 'YourTableName.ColumnName', 'data' => 'YourColumnName'] следующим образом.

private function getColumns()
{
    return [
        'dir_name' => ['name' => 'directories.dir_name', 'data' => 'dir_name'],

        'phone_number' => ['name' => 'directories.phone_number', 'data' => 'phone_number'],

        'address' => ['name' => 'directories.address', 'data' => 'address'],

        'features' => ['name' => 'directories.features', 'data' => 'features', ],

        'Status' => ['name' => 'directories.Status', 'data' => 'Status','searchable'=>false ],

        'Subscription' => ['name' => 'directories.Subscription', 'data' => 'Subscription','searchable'=>false ]
    ];
}
...