Laravel-admin实例笔记(3)—创建表单
Laravel

这篇笔记主要记录如何使用【helpers】插件的【Scaffold】功能来创建一个自定义的表单。
比如我需要一个《资产登记表》、《每日巡查记录表》、《物品领取记录表》都可以很容易实现。
使用 Scaffold 功能,可以通过点点鼠标,填填表格,写几行简单的代码,就可以形成风格同意、内容自定的表单。
对于这个插件,我为它转身!

下面开始正式操作步骤。

环境检查

1.安装好插件,上一篇笔记中有记录如何安装插件。
2.在 [/app] 目录下创建 Models 文件夹,注意所有者和权限。

Scaffold 创建

Scaffold 可以根据自定义的信息自动创建数据库、Model、Controller,
进入 Scaffold ,我们尝试创建一个资产登记表,结构如图。
1.png
Table name :数据表名,不建议使用太特殊的命名规则。
Model:模型名称,命名规则——<模型名称>Model,例如:MydataModel、MydataModel,不建议使用特殊字符,必须以Model结尾。
Controller:控制器名称,——<控制器名称>Controller,例如:MydataController、MydataController,不建议使用特殊字符。必须以Controller结尾。
底部四个勾选,可以自动构建数据库。
2.png
此处填写数据库结构,其中 id 列默认生成,不需要再次创建。
底部的 Primary key 默认为 id ,如无特殊需求,也不需要修改。
Created_at & Updated_at:若勾选,自动创建“创建时间”、“更新时间”列,方便记录表单信息变化。
Soft deletes:若勾选,则开启软删除功能,在表单中删除已有记录时并非真实删除,而是在记录后写入删除时间,并且在前端隐藏此数据。

最后点击底部的 submit 按钮,如下图绿色提示,表示成功,若有错误会显示红色提示,根据提示进行相应处理。
3.png

显示表单

接下来,就需要让表单可以显示出来,
我们需要编辑 [/app/Admin/routes.php]
在对应位置写入$router->resource('/infoassets', 'InfoAssetsController');
如图14行:
4.png
其中 "/infoassets" 为访问路径,即http://yoursite.com/admin/infoassets ,此处也可以改为其他名字,但为了后期维护,建议与控制器名称对应。
后面的 "InfoAssetsController" 为对应控制器的名称,两者相对应。
之后我们创建其他表单,也需要在这里按照这个规则添加。

编辑完毕后,我们保存,就可以使用 http://yousrite.com/admin/infoassets 地址进行访问了。
至此,我们的表单就创建好啦,但在页面中可以看到,并没有可以输入信息地方,别着急,慢慢来。
5.png

表单详情定制

这里涉及到两个 Laravel 组件,$grid 和 $form,
$grid——用来控制显示的表单,
$form——用来控制在录入信息时表单的类型。
我们还是来实战吧。
编辑 [/app/Admin/Controllers/InfoAssetsController.php] (就是刚刚创建的控制器)。
在下图处进行编辑,
6.png
我们只需要将需要显示和录入的数据库字段添加进入就可以了。
7.png
添加代码:$grid-><数据库字段名>('中文名称');
8.png

9.png
添加代码:$form->text('<数据库字段名>', '中文名称');
10.png

细节设置

细心的你一定发现,左上角一直显示的是“ header description ”,
还是编辑:[/app/Admin/Controllers/InfoAssetsController.php]
在23、40、56行,我们分别可以看到“index”、“edit”edit、“create ”函数代码,
通过名字可以看到,他们分别代表索引页面、编辑页面、创建页面。
并且,它们都包含了代码:

            $content->header('header');
            $content->description('description');

            $content->body($this->form());

将“ header ”修改为对应函数代码下的名称,例如“资产管理”、“资产管理-资产编辑”、“资产管理-添加资产”。
“ description ”可以根据需要修改。这里不再详细介绍了。

创建表单的步骤基本就这些,下一篇笔记会介绍更多的细节设置。

本文由 ScotGu 创作,采用 知识共享署名4.0 国际许可协议进行许可


Responses