laravel-admin中模型及控制器的创建使用步骤

2023-06-01 00:00:00 laravel

这篇也是接上上一篇的,laravel-admin扩展包装好了就使用一下它

环境:centos7+laravel7+laravel-admin1.8

mysql创建个表:test 添加几个字段id,name,添加时间,编辑时间

1.创建model

[[email protected] laraveltest]# php artisan make:model Models/Test
Model created successfully.

2.创建控制器

[[email protected] laraveltest]# php artisan admin:make TestController --model=App\\Models\\Test
App\Admin\Controllers\TestController created successfully.

Add the following route to app/Admin/routes.php:

   $router->resource('tests', TestController::class);

[[email protected] laraveltest]#

3.在菜单栏Admin\Menu里面添加菜单 测试目录 url设置tests

4.设置路由 (app\admin\routes.php)

//$router->resource('tests', TestController::class);

$router->resources([
       'tests' => TestController::class,
]);

5.test模型

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class Test extends Model
{
   protected $table = 'test';

   public static function grid($callback)
   {
       return new Grid(new static, $callback);
   }
   public static function form($callback)
   {
       return new Form(new static, $callback);
   }
}

6.test控制器

<?php
namespace App\Admin\Controllers;

use App\Models\Test;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
use Encore\Admin\Show;

class TestController extends AdminController
{
   /**
    * Title for current resource.
    * @var string
    */
   protected $title = 'Test';

   /**
    * Make a grid builder.
    * @return Grid
    */
   protected function grid()
   {
       $grid = new Grid(new Test());

       $grid->column('id', 'ID')->sortable();
       $grid->column('name');
       $grid->column('created_at')->date('Y-m-d');
       $grid->column('updated_at')->date('Y-m-d');

       return $grid;
   }

   /**
    * Make a show builder.
    * @param mixed $id
    * @return Show
    */
   protected function detail($id)
   {
       $show = new Show(Test::findOrFail($id));
       return $show;
   }

   /**
    * Make a form builder.
    * @return Form
    */
   protected function form()
   {
       $form = new Form(new Test());
       return $form;
   }
}

ok了

1.png

相关文章