laravel-admin 自定义页面和数据源

这个问题卡了我很久,网上找到了参考也很少,在此记录一下。也希望能帮助到正在看的你。如有问题,欢迎指正

官方文档,关于Laravel-admin后台的表格和表单,都是基于模型(Model类)的。完全不符合我的需要,我上网找了很久demo,只找到一个有参考价值的。后续贴上

情况说明:
1.数据层面:不能建model。怎么办?
由于公司用的是用友系统自带(sql server )的库和表,比较复杂,初次尝试不敢随便折腾一个model出来。
只能用原始方法处理数据(用了借助构造器对数据库进行增删改查)。
那么问题就来了!这就意味着,不能用laravel-admin自带的模型表单,不能通过直接操作属性字段来调用数据。必须得自写页面,写的页面怎么能融入到这个框架里又是个问题,请继续往下看

2.页面需求:带日期筛选的form表单,有列表页(table),保留laravel-admin自带的侧边栏。
这样指定的页面,怎么渲染页面?
如果采取render方法,直接渲染页面,能完成任务,但是侧边栏丢了不能不符合需求;
如果使用框架文档中的content的body($content)方法,页面数据拿不到。
最后发现有个方法,见下面实例

说明:【路由定义】需要注意的地方,form的action请求,底层是ajax,和平时form action用法不太一样。当时用的时候,我是通过判断请求类型还渲染不同页面的,打印的时候发现,同一个页面,怎么既有get 又有post请求,两个分支都走了。很稀奇!

实例
定义路由

//route.php文件,定义路由
//框架默认点击走的是get请求(讲直白一点就是你点侧边栏的时候,那个是get请求)
    $router->post('/queryfh', 'sfExpressController@queryfhOrder');
    $router->get('/queryfh', 'sfExpressController@queryfhOrder');    

在这里插入图片描述
页面思路
思路:就是通过laravel的渲染视图拿到里面的html,在通过框架的row方法渲染过去。发现view有一个render方法,可以之间渲染html

直接上代码:

//方法1:查询发货单
// if post分支就是自定义的页面,view()+render()+row()方法解决
// if get分支用了框架自带的form 用body方法去渲染页面,action 是ajax请求
public function queryfhOrder(Content $content)
{
   
        $form = new Form;
        if (request()->isMethod('post')) {
   
            $dataArr = request()->post();
            $orderArr = processfhOrderData($dataArr);
            $orderView = view('admin.query_fh',['orderArr'=>$orderArr])->render();
            return $content
                ->header('顺丰业务接口列表')
                ->description('显示 发货单(销售出库)')
                ->row($orderView);
}
if (request()->isMethod('get')) {
   
            $form->action('queryfh');
            $form->dateRange('date_from', 'date_to','制单日期');
            return $content
                ->header('顺丰业务接口列表')
                ->description('查询 发货单(销售出库)')
                ->body($form);
        }
} 

界面图:
else分支
在这里插入图片描述

if分支:
在这里插入图片描述

最后特别感激这个帖子:Laravel-Admin 开发笔记
基本是全网,我只找到了这个,对我帮助很大。
如果你看到有类似的文章,欢迎你留言告诉我,谢谢

------------

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值