讨论 技术讨论 ModStartBlog 后台控制器除了CRUD如何添加额外的操作功能?

ModStartBlog 后台控制器除了CRUD如何添加额外的操作功能?

sigool 发表于    阅读:57    回复:1

问题描述:

ModStartBlog 后台控制器除了CRUD如何添加额外的操作功能?

环境信息:

用的是: ModStartBlog 稳定版 v10.0.0       PHP:7.0.9 版本

分享:

https://modstart.com/doc/tutorial/app.html 这篇官方文章就很好教了我们从建一个表到如何对这个表在后台给添加对应的CRUD功能,但

是如果我这个控制器不单增删查改呢?比如我还想弄多一个叫 分析 的操作,然后这个操作渲染出我计算的分析结果。整个流程分享下:


这个就是我最终的效果。


第一步,就肯定是添加菜单了,去哪里加就不说了,官方文档有说的

这就是我添加的,我往控制器加多了一个叫 analyze 的操作实现我想要的功能。

下一步添加路由,没有路由玩个锤子(路由写在哪,官方文档也有说的了)。

这是我对应的这个操作的路由。


接下来控制器该写这个操作的逻辑代码了

像我是根据是POST还是GET请求判断,我是GET请求的时候就渲染出analyze这个页面了,然后页面会发起POST再次到这个操作拿计算结果。

渲染这个页面又要保持在一个modstart后台整体框架里面(就是相当于单独打开tab一个效果,而且所在菜单要高亮这些都要保持正确),可以看到核心就是要用modstart提供的AdminPage这个类(\ModStart\Admin\Layout\AdminPage)body方法里传入的字符串就是们的analyze页面内容,实际上laravel 调用view()返回的是一个view对象里面就实现了laravel自己定义的Renderable类,而要实现这个Renderable类就必须完善一个叫render的方法,而modstart计算视图内容的时候刚好会判断类是否实现了这个Renderable类,如果实现了就直接调用render方法,所以我这里 ->render() 这个调用不是必须的,因为modstart会隐式自动地帮我们调用。

可以看到菜单,tab名称整体框架就是后台这样的,一模一样我们没有乱搞,不同就是红色框起来区域, 我红色框起来就是我们analyze操作渲染的页面,我们analyze的页面是?


往analyze.blade.php里写的东西就是GET这个操作可以看到的了。

接下来还有ajax post请求回我们控制器那操作呢?是怎么样的?

核心就是用MS.api.post你直接全局搜代码就有相关这个modstart写的函数的了,这个函数就让我们可以快捷发起POST到控制器请求而且

还不要我们管验证是否登录这些了它已经做好的了。

回到操作这边

我路由定义了这个操作无非要么是GET就是POST的,我就是判断是POST就去计算数据了,然后就响应回结果要前端了。

所以整个大致流程就是这样的。



评论

赞 👍

 
1
我来评论
QQ
微信
客服