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 表单不支持 PUT
、PATCH
或者 DELETE
请求方法,因此,在 HTML 表单中调用 PUT
、PATCH
或 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'); });