作为刚学习 PHP , 才接触 Laravel 的新手一枚, 今天在做练习的时候, 有一个页面是空白的, 既没有错误提示, 也没有内容, 就是一片空白, 白的都把我晃傻了. 后经过各种排除, 不经意见发现了我犯的错, 顿时心中一万只乌鸦飞过.... 先记录我排除错误的方向
1. 检查路由配置,
没有书写之类的错误, 而且如果是书写错的话, 页面也会报错的, 我还怕是书写错误, 特意把成功打开的页面 copy 下来, 排除嫌疑
2. 检查 controller 中页面跳转的路由
我依然是替换为成功打开的页面, 发现没有问题, 排除
3. 百度搜索,
有人说可能是模板出了问题, 于是我又把成功的 blade.PHP 文件 copy 过来, 发现依然是空白, 由此推断并非是模板的问题
模板引擎没有问题, 路由没有问题, 路径也没有问题, 到底是什么? 是什么? 不停的查看我的 controller, 最后通过和成功页面的 controller 对比, 发现是我路由里引用的 controller 里的方法没有做任何的返回, 也就是没有返回我要的页面, 可不就是空白嘛, 心中顿时把自己鄙视一顿, 根本原因还是没有理解路由, controller, 页面他们之间的关系
**
梳理一下三者的联系
路由: 是 controller 和页面的纽带, 通过调用 controller 的方法, 来到我们想要的页面, 例如
Route::get('backend/article/create','Backend\ArticleController@create')->name('article-create');
在浏览器里输入地址 xx.com/backend/article/create, 就会去对应的 ArticleController 中找 create 方法, 在这个方法中, 最后的 return view('article.create') 指向 view/article/create.blade.PHP 文件
Controller: 是 Laravel 里的控制器, 如果你没有建立 repository 层的话, 所有的逻辑都在这里写了, 包括对数据的处理, 处理完后最后的结果还是要返回页面的, 因为页面是我们在最终的呈现结果, 建议再建一个
repository 层, 将处理数据的逻辑抽离处理, 在 controller 层只做流程的处理, 这样会比较清晰,
页面: 就是通过路由里路径进行的跳转, 在页面中可以使用 route('article-create') 来进行配置路径, 底层会根据 name 去路由中对应的路径, 而且在页面中也可以接收参数, 可以是对象
来源: http://www.bubuko.com/infodetail-2876650.html