php 控制文件上传调用次数6,ThinkPHP6文件上传与CURD无法使用方法跳转问题

场景说明

有这样一个无法避免的问题,那就是当我们在进行CURD时成功后跳转的问题。对于这个问题,很遗憾的是ThinkPHP6废弃了success与error这两个跳转方法。

ThinkPHP6完成是参考Laravel而来,或许这就是废弃了success与error方法的原因吧。对于习惯了Laravel的开发者来说可能影响不大,但是对于一直使用ThinkPHP框架的开发者来说,可能需要一会才好缓过来。

对于ThinkPHP6,或许会有一种熟悉的陌生感。用着用着可能会出现这样一个你感觉是BUG但又不是BUG的错误,而ThinkPHP官方并没有对此进行说明。这对新手是不友好。出现了像BUG但又不是BUG的问题,解决方法就只有去看源码,这,你懂的~~~偏了这么多。

对于一个好的东西,想借鉴但又不能全部照搬,该咋办,东拼西凑,最后嘛~~~不吹了,下面回到正轨。

关于CURD成功或失败后带有提示的跳转,有两种解决方法,第一种方法是:重定向并携带session信息;第二种方法是:异步请求,根据返回的自定义的json状态数据进行判断。

add界面

admin/controller/view/test/add.html

控制器

步骤一:开启session // app/middleware.php

步骤二:编写方法

admin/controller/test/Test.phppublic function store(Request $request)

{

if($request->isPost()){

$data = $request->param();

$data['cate_pic'] = '';

// 判断是否有文件上传

if(!empty($request->file())){

$file = $request->file('cate_pic');

$data['cate_pic'] = \think\facade\Filesystem::disk('public')->putFile( 'topic', $file);

}

$result = Db::name('test')->strict(false)->insert($data);

// 添加成功后,携带session信息,然后在模板中当作提示信息使用

return redirect(url('admin/Test/index'))->with('success','添加栏目成功');

}

}不得不说,这里有一个不小的坑。根据官方的操作走,你会发现永远没有办法进行写入数据操作。它出出现没有文件被上传的错误提示页面。这是BUG吗,会被当成BUG吗,并不清楚。下面记录下我的解决方法。

【解决方法】$request->file()就是解决方法。当没有文件上传时,它会返回一个空数组,我们就可以利用这个空数组来判断是否有文件被上传。

列表页面展示错误信息

admin/controller/view/test/index.html

{$Request.session.success}

(完)欢迎大家一起交流学习。

我是夕阳何处寻,期待和优秀的你一起同行!

夕阳何处寻

2020年08月01日

转载:感谢您对自如初博客网站的认可,所有文章均属原创文章,技术类文章转载请注明出处,“自如初博客”;文学类文章请带文本链接地址,否则视为侵权!

很赞哦!(8)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值