界面

代码
<?php
namespace App\Admin\Controllers\Sakila;
use App\Models\Sakila\City;
use App\Models\Sakila\Country;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Form;
use App\Http\Controllers\Controller;
class CityController extends Controller
{
...
protected function grid()
{
return Admin::grid(City::class, function (Grid $grid) {
$grid->id('ID')->sortable();
$grid->city()->editable();
$grid->country()->country();
$grid->created_at();
$grid->updated_at();
$grid->filter(function ($filter) {
$filter->like('city');
$filter->like('country.country', 'Country');
});
});
}
protected function form()
{
return Admin::form(City::class, function (Form $form) {
$form->display('id', 'ID');
$form->select('country_id')->options(function ($id) {
$country = Country::find($id);
if ($country) {
return [$country->id => $country->country];
}
})->ajax('/admin/api/sakila/counties');
$form->text('city');
$form->display('created_at', 'Created At');
$form->display('updated_at', 'Updated At');
});
}
// GET /admin/api/sakila/counties?q=XX
public function counties(Request $request)
{
$q = $request->get('q');
return Country::where('country', 'like', "%$q%")->paginate(null, ['id',DB::raw('country as text')]);
}
...
}
模型
表结构
-END-