界面
代码
<?php
namespace App\Admin\Controllers\Sakila;
use App\Models\Sakila\Staff;
use Encore\Admin\Facades\Admin;
use Encore\Admin\Form;
use App\Http\Controllers\Controller;
class StaffController extends Controller
{
...
protected function grid()
{
return Admin::grid(Staff::class, function (Grid $grid) {
$grid->id('ID')->sortable();
$grid->column('name');
$grid->address()->address();
$grid->picture('avatar')->image();
$grid->email();
$grid->active()->value(function ($active) {
return $active ?
"<i class='fa fa-check' style='color:green'></i>" :
"<i class='fa fa-close' style='color:red'></i>";
});
$grid->username();
$grid->created_at();
$grid->updated_at();
$grid->rows(function ($row) {
$name = "$row->first_name $row->last_name";
$row->column('name', $name);
});
});
}
protected function form()
{
return Admin::form(Staff::class, function (Form $form) {
$form->display('id', 'ID');
$form->text('first_name');
$form->text('last_name');
$form->select('address_id', 'Address')->options(function ($addressId) {
return Address::options($addressId);
})->ajax('/admin/api/sakila/address')->rules('required');
$form->image('picture');
$form->email('email');
$form->text('store_id');
$form->switch('active');
$form->text('username');
$form->password('password');
$form->display('created_at', 'Created At');
$form->display('updated_at', 'Updated At');
});
}
// GET /admin/api/sakila/address?q=XX
public function address(Request $request)
{
$q = $request->get('q');
return Address::where('address', 'like', "%$q%")->paginate(null, ['id',DB::raw('address as text')]);
}
...
}
模型
表结构
-END-