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

      

      

 

posted @ 2017-03-16 13:40  涛涛taotao  阅读(215)  评论(0)    收藏  举报