laravel基础课程---4、Laravel基础网站结构搭建
一、总结
一句话总结:
1、搭建网站前后台路由:在路由组Route::group()中设置好命名空间和前缀
2、搭建控制器:比如1)新建Admin目录,存放后台控制器;2)新建Home目录,存放前台控制器
3、搭建页面:在resources的views中创建我们的我们需要的页面即可
前后台路由
// 前台路由 Route::group(['namespace'=>'Home'],function(){ // 前台首页 Route::get('/',"IndexController@index"); }); // 后台路由 // 通过路由组 提取公共命名空间 公共的前缀 Route::group(['namespace'=>'Admin','prefix'=>'admin'],function(){ // 后台首页 Route::get('/','IndexController@index'); // 后台用户管理模块 Route::resource('user','UserController'); // 后台商品管理模块 Route::resource('goods','GoodsController'); });
后台控制器:根据路由的需要创建控制器(以后台为例 需要修改命名空间)
IndexController.php namespace AppHttpControllersAdmin; use IlluminateHttpRequest; use AppHttpControllersController; use DB; // 后台首页控制器 class IndexController extends Controller { // 后台首页方法 public function index(){ echo "我是后台首页"; } }
引入页面:在对应控制器中reture view()
1、后台首页控制器 public function index(){ // 引入页面 return view('admin.index'); }
1、通过路由提取 【公共命名空间】和【公共的前缀】分别对应的作用是什么?
【公共的前缀】相当于是加在文件路径前面的:比如prefix是admin,就相当于后台用户管理模块的文件为 admin/user
【公共命名空间】 相当于是加在控制器的前面:比如namespace是Admin,就相当于是用户管理模块的控制器为 Admin/UserController
|||-begin
1 // 后台路由 2 // 通过路由组 提取公共命名空间 公共的前缀 3 Route::group(['namespace'=>'Admin','prefix'=>'admin'],function(){ 4 // 后台首页 5 Route::get('/','IndexController@index'); 6 // 后台用户管理模块 7 Route::resource('user','UserController'); 8 // 后台商品管理模块 9 Route::resource('goods','GoodsController'); 10 });
|||-end
2、使用laravel搭建网站的前后台 需要管理的路由的文件位置是哪里?
routes下的web.php
(D:laravelyzmeduyzm2 outesweb.php)
3、thinkphp中的处理和显示页面在一个函数中(比如修改操作和显示修改页面),laravel对应的呢?
laravel默认好像是分开的
<?php namespace AppHttpControllersAdmin; use IlluminateHttpRequest; use AppHttpControllersController; use DB; // 后台用户管理首页控制器 class UserController extends Controller { // 后台用户管理首页方法 public function index(){ // 加载用户管理页面 return view('admin.user.index'); } // 后台用户管理修改页面 public function edit(){ return view('admin.user.edit'); } // 后台用户管理添加页面 public function create(){ return view('admin.user.create'); } // 添加操作 public function store(){ } // 修改操作 public function update(){ } // 删除操作 public function destory(){ } }
4、laravel的模板继承是什么样的?
存同写异:公共区域被提取出来【比如侧边栏,底部栏】,我们只需要在页面中继承,然后编写页面间不同的位置即可
在公共文件中弄好模板【比如sidebar和内容】:内容区域用@yield('content')占位,视图区块用 @section('sidebar') 来占位
子页面继承: @extends('layouts.app')
<!-- 文件保存于 resources/views/layouts/app.blade.php --> <html> <head> <title>应用程序名称 - @yield('title')</title> </head> <body> @section('sidebar') 这是 master 的侧边栏。 @show <div class="container"> @yield('content') </div> </body> </html>
子页面继承
<!-- Stored in resources/views/child.blade.php --> @extends('layouts.app') @section('title', 'Page Title') @section('sidebar') @parent <p>This is appended to the master sidebar.</p> @endsection @section('content') <p>This is my body content.</p> @endsection
5、模板布局 的作用以及实例?
主要解决网站后台公共部分的修改
实例:建立模板文件(视图中)+ 替换占位符位置
0、主要解决网站后台公共部分的修改 1、需要在视图目录下新建muban模板 2、新建一个模板文件 admin.blade.php <html> <head> </head> <body> #不一样的地方需要使用 @yield('main') </body> </html> 3、普通页面如何书写 #继承模板 @extends('muban.admin') #替换占位的内容 @section('main') <!-- 内容 --> <div class="col-md-10"> <div class="jumbotron"> <img src="/admins/img/4.jpg"height="310px" width="100%" alt=""> <h2>联想 后台管理系统</h2> <p>开发者 : 赵丰泰</p> </div> </div> @endsection
6、中间件使用实例?
书写路由:Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>'adminLogin'],function(){
创建中间件:php artisan make:middleware adminLogin
注册中间件:在app的Http的kernel.php中
中间件作用:比如可以【判断用户是否登录,判断session中是否有数据】,和tp中我写在base基础控制器中的东西比较像
1、路由如何书写 // 通过路由组 提取公共命名空间 公共的前缀 中间件 Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>'adminLogin'],function(){ // 后台首页 Route::get('/','IndexController@index'); }); 2、如何新建中间件 php artisan make:middleware adminLogin 3、注册中间件(D:laravelyzmeduyzm2appHttpkernel.php) protected $routeMiddleware = [ 'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class, 'adminLogin' => AppHttpMiddlewareAdminLogin::class, ]; 4、打开中间件(D:laravelyzmeduyzm2appHttpMiddlewareadminLogin.php)