laravel 笔记

1、配置:

  env文件:

     配置解析APP_KEY             php artisan key:generate

               获取环境配置信息     var_dump(env('APP_DEBUG'));

    设置配置信息(没有设置才可以设置)    env('APP_DEBUG',false)

  config:

    访问配置值        $value = config('app.timezone');

    设置配置值        config(['app.timezone' => 'Asia/Shanghai']);

 

2、php artisan (php 工具匠) 

   维护模式:

     php artisan down        下线,关闭站点,开启维护模式

     php artisan down --message="Upgrading Database" --retry=60

     php artisan up          上线,开启站点

       php artisan route:list          查看路由列表,报错则该路由有问题

       php artisan make:model Model/admin -m    创建model模块

     

 3、路由

  基本路由

    简单优雅的路由定义

Route::get('hello', function () {
    return 'Hello, Welcome to LaravelAcademy.org';
});

    加载页面

Route::get('hello', function () {
    return view('user');
});

 

    访问控制器   方法

Route::get('/user', 'UsersController@index');

  

  路由类型:

    Route::get($url,$callback);

    Route::post($url,$callback);

    Route::put($url,$callback);

    Route::patch($url,$callback);

    Route::delete($url,$callback);

    Route::options($url,$callback);

  

     get:

Route::get('/user', 'UsersController@index');

   post:

Route::post('/check', 'UsersController@check');

 

   put:

    HTML 表单不支持 PUTPATCH 或者 DELETE 请求方法,因此,在 HTML 表单中调用 PUTPATCH 或 DELETE 路由时,需要添加一个隐藏的 _method 字段,其值被用作该表单的 HTTP 请求方法:

//html页面
<form action="/foo/bar" method="POST"> <input type="hidden" name="_method" value="PUT"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> </form>

// 控制器方法 需要用Request 获取传递的参数
public function put( Request $request){
  dd($request->input());
}



 

   CSRF:

      Laravel 通过自带的 CSRF 保护中间件让避免应用遭到跨站请求伪造攻击变得简单:Laravel 会自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,然后将该令牌存放在 Session 中,该令牌用于验证授权用户和发起请求者是否是同一个人。  

    表单中添加

<form method="POST" action="/profile">
    {{ csrf_field() }}
    ...
</form>

 

 

  

Route::match    支持多种请求方式

      有时候还需要注册一个路由响应多种 HTTP 请求动作 —— 这可以通过 match 方法来实现。或者,可以使用 any 方法注册一个路由来响应所有 HTTP 请求动作:

Route::match(['get', 'post'], 'foo', function () {
    return 'This is a request from get or post';
});

Route::any('bar', function () {
    return 'This is a request from any HTTP verb';
});

    资源路由

Route::resource('posts', 'PostController');

    laravel 的资源控制器可以让我们很便捷地构建基于资源的 RESTful 控制器,例如,你可能想要在应用中创建一个控制器,用于处理关于文章存储的 HTTP 请求,使用 Artisan 命令 make:controller,我们可以快速创建这样的控制器:

php artisan make:controller PostController --resource

    这个路由声明包含了处理文章资源对应动作的多个路由,相应地,Artisan 生成的控制器也已经为这些动作设置了对应的处理方法: 资源控制器处理的动作

    路由必选参数

Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
    return $postId . '-' . $commentId;
});

    路由可选参数

Route::get('user/{name?}', function ($name = null) {
    return $name;
});

Route::get('user/{name?}', function ($name = 'John') {
    return $name;
});

  命名路由

    命名路由为生成 URL 或重定向提供了方便,实现起来也很简单,在路由定义之后使用 name 方法链的方式来定义该路由的名称:

Route::get('user/profile', function () {
    // 通过路由名称生成 URL
    return 'my url: ' . route('profile');
})->name('profile');

    还可以为控制器动作指定路由名称:

Route::get('user/profile', 'UserController@showProfile')->name('profile');

    这样我们就可以通过以下方式定义重定向:

Route::get('redirect', function() {
    // 通过路由名称进行重定向
    return redirect()->route('profile');
});

   路由重定向

Route::redirect('/here', '/there', 301);

   路由分组   会自动找到命名空间内的控制器方法

    中间件

 

    路由分组

Route::group(['namespace'=>'Admin'],function(){
       Route::get('admin','IndexController@index');
       Route::get('admin/user','UserController@index');
       Route::get('admin/goods','GoodsController@index');       
});

 

posted on 2019-10-30 14:05  潇潇六月雨  阅读(158)  评论(0编辑  收藏  举报

导航