CustomerTableController.php 900 Bytes
<?php

namespace App\Http\Controllers\Backend\Customer;

use App\Repositories\Backend\Customer\CustomerRepository;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Yajra\DataTables\Facades\DataTables;

class CustomerTableController extends Controller
{
    /**
     * @var CustomerRepository
     */
    private $customerRepository;

    /**
     * CustomerController constructor.
     * @param $customerRepository
     */
    public function __construct(CustomerRepository $customerRepository)
    {
        $this->customerRepository = $customerRepository;
    }

    public function __invoke(Request $request)
    {
        return DataTables::of($this->customerRepository->getAll())
            ->addColumn('actions', function ($customer) {
                return $customer->action_buttons;
            })
            ->rawColumns(['actions'])
            ->make(true);
   }
}