目录结构

配置选项
php.ini
extension=php_openssl.dllextension=php_mbstring.dllextension=php_pdo_mysql.dll
修改默认首页
- server.php => index.php
- DirectoryIndex server.php
- 修改入口文件:DocumentRoot ".../public"需要服务器支持修改入口文件或者子目录可以绑定域名 
将伪静态配置文件.htaccess移动到项目根目录
基础路由
• Route::get($uri, $callback);
• Route::post($uri, $callback);
• Route::put($uri, $callback);
• Route::patch($uri, $callback);
• Route::delete($uri, $callback);
• Route::options($uri, $callback);
• Route::match([‘get’, ‘post’], ‘/‘, $callback);
• Route::any(‘foo’, $callback);
参数限定
| 1 | Route::get('user/{name}', function($name) | 
postman插件
路由参数不能使用-,需要使用_进行替换
基础控制器
laravel 控制器没有像ThinkPHP 那种参数访问控制器的方法,所有的控制器访问都需要通过路由进行设置
- 手动创建路由与控制器相对繁琐
- 使用Atrisan方法创建 - 1 
 2- uiste:blog uiste$ php artisan make:controller HomeController 
 Controller created successfully.
- 控制器分文件夹 - 命名空间 
 路由使用- \
高级路由
路由命名
| 1 | Route::get('/index', ['as'=>'index',function(){ | 
控制路由命名Route::get('/index', ['uses'=>'Admin\IndexController@index','as'=>'index']);Route::get('/index', 'Admin\IndexController@index')->name('index');return route('index');//控制器调用
路由分组
将相同的路由放在一起,便于统一的管理1
2Route::get('admin/index', 'Admin\IndexController@index')->name('index');
Route::get('admin/login', 'Admin\IndexController@login')->name('login');
使用group对平台及命名空间进行分组方式如下:1
2
3
4Route::group(['prefix'=>'admin','namespace'=>'Admin'],function(){
    Route::get('index', 'IndexController@index')->name('index');
    Route::get('login', 'IndexController@login')->name('login');
});
Terminal中显示路由列表uiste:blog uiste$ php artisan route:list
RESTfun 资源路由控制器
资源路由设置,优点:一条路由生成多种路由规则Route::resource('article','ArticleController');

Middleware中间件
HTTP 中间件提供一个方便的机制来过滤进入应用程序的 HTTP 请求。
Laravel 框架已经内置一些中间件,包括维护、身份验证、CSRF 保护,等等。所有的中间件都位于 app/Http/Middleware 目录内。
自定义路由中间件app\Htp\Kernel.php
- kernel.php中定义中间件名 - 1 
 2
 3
 4- protected $routeMiddleware = [ 
 'admin.login' => \App\Http\Middleware\AdminLogin::class,
 ];
 //后台登录中间件,AdminLogin中间件名
- 使用Artisan创建中间件 - uiste:blog uiste$ php artisan make:middleware AdminLogin
- routes.php定义路由规则 - 1 
 2
 3
 4
 5- Route::group(['middleware' => ['web','admin.login']], function () { 
 Route::get('test',function(){
 echo 'test a middleware';
 });
 });
- 书写中间件条件 - 1 
 2
 3
 4
 5
 6- public function handle($request, Closure $next) 
 {
 if(session('admin'))
 return redirect('admin/login');
 return $next($request);
 }
使用
web中间件,才能使用session
视图
方法一:return view('greeting')->with('name', 'Victoria');
使用:$name; 可以多个with一同使用
方法二:return = view('greeting', $data);
方法三:return view('greeting',compact('data','title'));
模板引擎
blade模板引擎 基础用法1
2
3
4
5• {{ $name }}
• @{{ $name }} 					使用@符屏蔽语法解析
• {{ $name or 'Default' }} 		使用or设置默认值
• {{ isset($name) ? $name : 'Default' }}
• {!! $str !!} 					算感叹号代表htmlspecialchars_decode()
Blade模板引擎 流程控制
有开始标志就要有结束标志
• @if1
2
3
4
5@if($data['score']<60)
    不及格
    @else
    及格
    @endif
• @unless       除非,用法同if
• @for
• @foreach1
2
3
4@foreach($data['article'] as $v)
    {{ $v }}
    @endforeach
    }
• @forelse      是foreach的补充1
2
3
4
5@forelse($data['article'] as $v)
    $v
    @empty
    没有数据
    @endforelse
• @while
以上基本流程控制可以嵌套
Blade模板引擎 子视图
• @include(common.header)
• @include(common.name’, [‘some’ => ‘data’])
• @extends(‘layouts.master’)
• @yield(‘content’)
• @section(‘content’)1
2
3
4
5头文件
@section('content')
<p>父类模板文件中的内容</p>
@show
脚文件
子视图文件1
2
3
4
5@extends('layouts.home')
@section('content')
    @parent
    替换的内容
    @section('content')
读取配置项
echo config('database.connections.mysql.prefix');echo config('app.debug');
连接数据库
| 1 | $pdo = DB :: connection()->getPdo(); | 
数据表操作
• DB::table(‘user’)->get();
• DB::table(‘user’)->where(‘user’,1)->get();
模型创建
• php artisan make:model User
数据表操作
• protected $table=”user”;
• protected $primaryKey = ‘user_id’;
• public $timestamps = false;       //禁止默认时间戳