界面

代码

<?php

namespace App\Admin\Controllers\Sakila;

use App\Models\Sakila\Payment;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Form;
use App\Http\Controllers\Controller;

class PaymentController extends Controller
{
    ...

    protected function grid()
    {
        return Admin::grid(Payment::class, function (Grid $grid) {

            $grid->id('ID')->sortable();

            $grid->customer()->value(function ($customer) {
                return "{$customer['first_name']} {$customer['last_name']}";
            });
            $grid->staff()->value(function ($staff) {
                return "{$staff['first_name']} {$staff['last_name']}";
            });

            $grid->rental_id();
            $grid->amount()->value(function ($amount) {
                return "\$$amount";
            })->badge('green');
            $grid->payment_date();

//            $grid->created_at();
//            $grid->updated_at();
        });
    }

    protected function form()
    {
        return Admin::form(Payment::class, function (Form $form) {

            $form->display('id', 'ID');

            $form->select('customer_id')->options(function ($id) {
                $customer = Customer::find($id);

                if ($customer) {
                    return [$customer->id => "$customer->first_name $customer->last_name"];
                }
            })->ajax('/admin/api/sakila/customers');

            $form->select('staff_id')->options(function ($id) {
                $staff = Staff::find($id);

                if ($staff) {
                    return [$staff->id => "$staff->first_name $staff->last_name"];
                }
            })->ajax('/admin/api/sakila/staffs');

            $form->number('rental_id');
            $form->currency('amount');
            $form->date('payment_date');

            $form->display('created_at', 'Created At');
            $form->display('updated_at', 'Updated At');
        });
    }


    // GET /admin/api/sakila/customers?q=XX
    public function customers(Request $request)
    {
        $q = $request->get('q');

        return Customer::where('first_name', 'like', "%$q%")->paginate(null, ['id',DB::raw('concat(first_name, " ", last_name) as text')]);
    }

    // GET /admin/api/sakila/staffs?q=XX
    public function staffs(Request $request)
    {
        $q = $request->get('q');

        return Staff::where('first_name', 'like', "%$q%")->paginate(null, ['id',DB::raw('concat(first_name, " ", last_name) as text')]);
    }

    ...
}

模型



表结构



-END-

results matching ""

    No results matching ""