Laravel --- 要点笔记
一.路由:
// 常规用法 Route::get('/',function(){ return 'get'; }) // 匹配多个 Route::match(['get','post'],'/',function(){}) Route::any('/',function(){}) // 验证参数 Route::post('/{id}',function($id){ return $id })->where('id','[0-9]+')
Laravel中提交方式:GET(查) POST(改) PUT(增) DELETE(删)
其中PUT和DELETE,本质上就是POST提交且多提交了一个_method参数,参数值为PUT或者DELETE
二.控制器相关
创建控制器:php artisan make:controller Admin/HomeController
路由别名:
// 方式1: Route::get('admin/ad_home', ['as' => 'ad_home', 'uses' => 'Admin\HomeController@home']); // 方式2(常用): Route::get('admin/ad_login/{id}', 'Admin\HomeController@login')->name('ad_login'); route('ad_login',['id'=>1]); // 输出访问的URL
路由前缀:
//Route::get('admin/ad_home', ['as' => 'ad_home', 'uses' => 'Admin\HomeController@home']); //Route::get('admin/ad_login/{id}', 'Admin\HomeController@login')->name('ad_login'); //Route::get('admin/ad_logout/{id}', 'Admin\HomeController@logout')->name('ad_logout'); Route::group( ['prefix' => 'admin','namespace'=>'Admin'], function () { Route::get('ad_home', ['as' => 'ad_home', 'uses' => 'HomeController@home']); Route::get('ad_login', 'HomeController@login')->name('ad_login'); Route::get('ad_logout', 'HomeController@logout')->name('ad_logout'); } );
查看路由:php artisan route:list
路由资源:
route::resource('article','ArticleController');
中间件:
创建:php artisan make:middleware MyTest
在kernel.php中的$routeMiddleware属性下面加上'my.test' => \App\Http\Middleware\MyTest::class
使用:
// route.php Route::get('login', 'HomeController@login'); Route::group(['middleware' => ['web','my.test']], function () { Route::get('home', 'HomeController@home'); Route::get('logout', 'HomeController@logout'); });
// \App\Http\Middleware\MyTest\MyTest.php namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Redirect; class MyTest { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if(!session('name')) { return redirect('login'); } return $next($request); } }
三.视图传参:1.with 2.传数组 3.compact
$data = ['name'=>'ht','age'=>999]; $title = 'biaoti'; return view('login',compact('data','title'));
四.模板引擎
1.模板变量:
---@{{ $str }}
---{{$has or '不存在'}}
---{!! $str !!}
2.控制流程
@if @unless @foreach @while @forelse
<div class="content"> @forelse($arr as $k => $v) @empty 空数组 @endforelse </div>
3.模板继承
---include('common.header',['title'=>$title])
---布局:
创建布局页面views/layouts/layouts.blade.php:
<!DOCTYPE html> <html> <body> <div class="header">头部[{{ $title }}]</div> {{--yield的效果和下面section+show的效果一样--}} {{--@yield('content')--}} @section('content') 我是主模板 @show <div class="footer">尾部</div> </body> </html>
创建具体页面views/index.blade.php:
@extends('layouts.layouts') @section('content') {{--@parent用来获取我是主模板--}} @parent <div class="content">index内容</div> @endsection
五. .ENV文件
生成key:php artisan key:generate
表前缀
六.模型
创建model:php artisan make:model Http/Model/Test
三点:指定表名 指定主键 禁用update_at 和 create_at

浙公网安备 33010602011771号