命名路由
命名路由为生成 URL 或重定向提供了便利。实现也很简单,在定义路由时使用数组键 as 指定路由名称:
Route::get('user/profile', ['as' => 'profile', function () {
//
}]);
此外,还可以为控制器动作指定路由名称:
Route::get('user/profile', [
'as' => 'profile', 'uses' => 'UserController@showProfile'
]);
此外,除了在路由数组定义中指定路由名称外,还可以通过在路由定义之后使用 name 方法链的方式来实现:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
路由群组 & 命名路由
如果你在使用路由群组,可以通过在路由群组的属性数组中指定 as
关键字来为群组中的路由设置一个共用的路由名前缀:
Route::group(['as' => 'admin::'], function () { Route::get('dashboard', ['as' => 'dashboard', function () { // 路由被命名为 "admin::dashboard" }]); });
命名空间
另一个通用的例子是路由群组分配同一个 PHP 命名空间给其下的多个控制器,可以在分组属性数组中使用 namespace
来指定群组中所有控制器的公共命名空间:
Route::group(['namespace' => 'Admin'], function(){ // 控制器在 "App\Http\Controllers\Admin" 命名空间下 Route::group(['namespace' => 'User'], function(){ // 控制器在 "App\Http\Controllers\Admin\User" 命名空间下 }); });
路由前缀
群组属性 prefix
可以用来为群组中每个路由添加一个给定 URI 前缀,比如,你可以为所有路由 URI 添加 admin
前缀 :
Route::group(['prefix' => 'admin'], function () { Route::get('users', function () { // 匹配 "/admin/users" URL }); });
资源控制器
Laravel 的资源控制器使得构建围绕资源的 RESTful 控制器变得毫无痛苦,例如,你可能想要在应用中创建一个控制器,用于处理关于图片存储的 HTTP 请求,使用 Artisan 命令 make:controller
,我们可以快速创建这样的控制器:
php artisan make:controller PhotoController --resource
该 Artisan 命令将会生成一个控制器文件 app/Http/Controllers/PhotoController.php
,这个控制器包含了每一个资源操作对应的方法。
接下来,可以为该控制器注册一个资源路由:
Route::resource('photo', 'PhotoController');
这个路由声明包含了处理图片资源 RESTful 动作的多个路由,相应地,Artisan 生成的控制器也已经为这些动作设置了对应的处理方法。
中间件(middleware):在路由上层加了一条过滤或者是保护
视图:处理结果的可视化
数据传递:with,传参,compace
$data=[
‘name’=’永才’;
‘age’=’18’;
]
$title=’我正在学习laravel’;
return view(‘my_laravel’,compace(‘data’,’title’));
html页面处代码
<div class=’title’><?php echo $data[‘name’];?>---<?php echo $data[‘age’];?>
<p><?php echo $title;?></p>
Blade模板引擎基础用法
Isset($name)?$name:’XXX’;//判断是否存在
Blade模板引擎 流程控制
@unless
Blade模板引擎 子视图
@include(common.header)
@include(common.name,[‘some’=>’data’])
@extends(‘layouts.master’)
@yield(‘title’)
@section(‘sidebar’)
知识点:
@yield(‘content’)表示此处为可变化部分
@extends(‘layout.home’)引入模板文件
@section(’content’)
<div class=’middle’>我是layouts区域的替换内容</div>
@endsection
.env文件及配置项读取(环境配置文件):数据库端口号,名称,密码,邮件等配置项
模型操作数据库(Eloquent ORM)
1.新建模型user模型
2.数据表操作
Protected $table=”user”;
Prodected $primaryKey=”user_id”;
Public $timestamps=false;
博客实战
后台模板引入:
分配登录路由
Route::get(‘admin/login’,’Admin\LoginController@login’);
新建Logincontroller控制器及login方法并返回登陆页视图
加载css文件的方法(1.直接按路径加载 2.{{asset(‘文件完整路径’)}})
验证码类及$_SESSION处理(第三方类库引入)
下载第三方验证码类库
分配一个验证码的路由Route::get(“admin/code”,”Admin\LOginController@code”)
在控制器中写code()方法
public function code()
{
echo 23456;
}
网上下载验证码类放到resources文件夹下
用require_once ‘具体路径
’ public function code()
{
$code = /Code //到底层空间找code类
$code->make(); //调用具体的make方法
}
如果使用外接的session必须在最外层index.php中开启(session_star();)
在登陆页显示验证码:<img src=”{{url(admin/code)}}” alt=” ” οnclick=”this.src=’ {{url(admin/code)}}’”>