新版已经不支持spLinker了,是否支持级联查询和更新?

#1 benben

旧版本升级到新版本,发现新版已经不支持spLinker了。新版本是否支持级联查询和更新?或者是否尤其demo?


2020-05-26 14:29:51

#2 jake

先看看手册。https://github.com/SpeedPHP/manual/blob/master/%E6%95%B0%E6%8D%AE%E6%93%8D%E4%BD%9C-SQL%E6%94%AF%E6%8C%81%E5%8F%8A%E5%85%B3%E8%81%94%E5%AE%9E%E7%8E%B0.md

2020-05-27 10:11:36

#3 benben

感谢,已经找到了。

看起来这次改版改动挺大的,花费一天升级成功。在部署过程中也遇到了一些问题,还好都解决了。

记录下,希望能够帮助到有需要的人。另外,版主是否可以提供一个升级注意事项的check list或者一个升级检查项。

基于我的场景,升级改动中遇到的问题,包括:
工程部分:
1. 原有的controller, model文件夹 移动到 protected中。 其他其他静态资源,移动到 i 文件夹下。

代码部分:
1. spUrl -> url,包括controller和view部分语法需要修改。
2. spLinker移除,需要是用query完成
3.$this->success和$this->error已经移除,需要自己实现。
4. findAll的condition不支持string,只支持array,且array中的只能进行“等于”的判断,对于其他,例如"<", "like"是不支持的。实现复杂的查询需要切换到query,或者更改speedphp.php的finall中的condition拼接,增加对string的支持。
5. 原有的php.index中的配置,需要移动到protected/config.php。
6. spArgs移除,替换为arg
7.model需要继承自Model, controller需要继承BaseController
8.分页的方式,从spPager($page_index, $this->config['page_size'])->findAll()修改为findAll的参数,获取分页信息需要从$model_config->spPager()->getPager()修改为$model_config->page;
9.BaseController中公共变量$layout指名使用的模板。
10. action的函数名需要加action前缀,例如之前版本的action的函数名是list,现在需要actionList()


部署部分:
1.静态路由从index.php?c=XXX&a=XXX修改为/controllerName/actionName, 需要检查Apache本身的配置是否开启“文件配置”的选项了。具体可以参照手册:https://github.com/SpeedPHP/manual/blob/master/%E8%AE%BF%E9%97%AE%E4%BA%A4%E4%BA%92-%E4%BC%AA%E9%9D%99%E6%80%81%E5%8F%8AURL%E8%B7%B3%E8%BD%AC.md
2.config.php的配置区分了 线上配合 和 调试配置,部署线上环境需要注意。



2020-05-28 13:08:55

#4 jake

benben 发表于 2020-5-28 13:08
感谢,已经找到了。

看起来这次改版改动挺大的,花费一天升级成功。在部署过程中也遇到了一些问题,还好都 ...
:handshake很厉害,这都能升级。因为原来的设计差的很远,所以本来是不推荐升级的。楼上能做到太厉害了。

2020-05-28 14:13:54