2021-09-06-laravel5.6升级8.6

今天把以前一个laravel5.6的项目升级到laravelv8.6.11

拷贝

app/Http Controllers  # 控制器
app/Http Requests  # 自定义,表单规则
app/Model
app/Traits
  
public/   #里面的资源文件
resources/views   #视图文件

routes/    # 路由文件
 
.env  # 里面数据库部分

config目录如果没有更改过,就保持默认,统一修改.env文件就行

以前有的包被内置了

有个叫TrustProxies的包,在不知道啥时候被内置到laravel里面了

Middleware/TrustProxies.php里面的引用变成

use Illuminate\Http\Middleware\TrustProxies as Middleware;

视图里面的方法被替代了

比如 str_limit() 被 Str::limit()替换了

默认的命名空间被注释了

提示错误,找不到目标控制器

Container\BindingResolutionException Target class [xxxxxxxController] does not exist.

后来发现 RouteServiceProvider 默认的命名空间是被注释的状态

// protected $namespace = 'App\\Http\\Controllers';

一、路由分组中Router::namespace()->group(...)

二、路由分组中Router::group(['namespace'=>xxxxx],....)

向多个视图分享数据,分享的数据无法找到

源项目需要在多个视图中分享的数据,在查看 Providers/AppServiceProvider.php文件的boot()方法

一、写法有变化,以前是view()->composer(....),现在是Illuminate\Support\Facades\View::composer(...)

二、我的视图文件的路径 views/Web/Index/indexviews/Web/Public/index,在boot方法中,经过测试,写成View::composer(['Web.Public.main','web.Index.index'],function($view){ 明明在同一个目录下,有个·web·只有写成小写才不报错

分页样式错乱

分页样式错乱
解决方法:文档 分页里面提到了,laravel8以后分页默认用的 tailwindcss的样式,如果要使用bootstrap 需要在 App\Providers\AppServiceProvider 中指定

use Illuminate\Pagination\Paginator;

/**
 * 引导任意应用服务
 *
 * @return void
 */
public function boot()
{
    Paginator::useBootstrap();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值