一、路由 Routes\;
1. 路由简介
- 简单的说就是将用户的请求转发给相应的程序进行处理。
- 作用就是建立url和程序之间的映射
- 请求类型get 、 post、put、patch、delete
2. 基本路由
//基础路由-get/post/put/patch/delete Route::get('basic1',function(){ return 'hello world'; }); Route::post('basic2',function(){ return 'hello world 2'; });
3. 多请求路由
//多请求路由-match/any Route::match(['get','post'],'multy1',function(){ return 'multy1'; }); Route::any('multy2', function(){ return 'multy2'; });
4. 路由参数
//路由参数 Route::get('user/{id}', function($id){ return 'User-id-:'.$id; }); //默认参数为空值 Route::get('user/{name?}', function($name = null){ return 'User-name-:'.$name; }); //指定默认值 Route::get('user/{name?}', function($name = 'sean'){ return 'User-name-:'.$name; }); //正则表达式匹配参数 Route::get('user/{name?}', function($name = 'sean'){ return 'User-name-:'.$name; })->where('name', '[A-Za-z]+'); //多参数 正则 Route::get('user/{id}/{name?}', function($id, $name = 'sean'){ return 'User-id-'.$id.'-User-name-'.$name; })->where(['id'=>'[0-9]+', 'name'=>'[A-Za-z]+']);
5. 路由别名
//路由别名 Route::get('user/center', ['as' => 'center', function(){ return route('center'); //查找路由路径时使用别名即可 }]);
6. 路由群组
//路由群组-访问群众中路由时需要加上前缀,如 /member/user/center Route::group(['prefix' => 'member'], function(){ //路由别名 Route::get('user/center', ['as' => 'center', function(){ return route('center'); }]); Route::any('multy2', function(){ return 'member-multy2'; }); });
7. 路由中输出视图
//路由中输出视图-视图所在目录 resources/views/ Route::get('view', function(){ return view('welcome'); });
二、控制器 App\Http\Controllers;
**创建控制器 -> 关联路由和控制器 -> 相关路由特效
<?php namespace App\Http\Controllers; use App\Member; class MemberController extends Controller { public function info($id){ return 'member-info'; //return route('memberinfo');
//return 'member-info-id-'.$id;
} public function getMember(){ return Member::getMember(); } }
//路由访问控制器
//方式一
Route::get('member/info', 'MemberController@info');
//方式二 Route::get('member/info', ['uses' => 'MemberController@info']);
//取别名 Route::get('member/info', [ 'uses' => 'MemberController@info', 'as' => 'memberinfo' ]);
//传递类型限制的参数
Route::any('member/{id}', ['uses' => 'MemberController@info'])
hu ->where('id', '[0-9]+');
//hu
Route::get('member', 'MemberController@getMember');
三、视图 resources\view\;
1. 新建视图
- info.php 原生模板
- info.blade.php 默认模板
2. 输出视图
- return view('info');
- 一般习惯一个控制器对应一个view目录(文件夹)
- return view('member/info')
- return view('member/info', ['name' => 'sean']);
//MemberController.php public function views() { //return view('member-info'); return view('info');
//传递变量给视图
//return view('info',
// ['name' => 'sean'],
// ['age' => 18]
//);
} //web.php Route::any('views', 'MemberController@views');
//info.blade.php
info blade
{{$name}}{{$age}}
四、模型 APP\
1. 模型的创建
一般一个模型对应数据库中的一张数据表
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model{ //每个模型对应一个数据表,用于交互数据库 //指定表名 protected $table = 'student'; //指定主键 protected $primaryKey = 'id'; //指定允许批量赋值的字段 protected $fillable = ['name', 'age']; //指定不允许批量赋值的字段 protected $guarded = [];
public static function getStudent(){
return 'student is sean';
}
//自动维护时间戳 // public $timestamps = true; //针对时间戳 将其转换为标准日期格式 // protected function getDateFormat() // { // return time(); // } //针对时间戳 不做格式处理 // protected function asDateTime($val) // { // return $val; // } }
2. 模型的使用
//StudentController.php
<?php namespace App\Http\Controllers; use App\Student; class StudentController extends Controller { public function info(){ return Student::getStudent(); } }
//web.php
Route::get('student', 'StudentController@info');
五、Reference