Laravel(一)

2017-09-04  本文已影响126人  PHPer_

Laravel框架是世界上最流行的PHP开发框架,没有之一。近年来Laravel以强大、安全、优雅等特性迅速占据了PHP开发框架第一份额的宝座。现在Laravel框架已成为大型互联网公司及PHP攻城狮们的首选框架。

开发环境的搭建

Laravel框架比较激进,大量使用了PHP的新特性,所以对PHP的版本要求比较高;

Laravel下载和安装

Laravel中文网,根据本地PHP版本对应下载,下载完成后解压压缩包,并配置域名到public文件夹下,访问浏览器出现下图说明安装成功;

Laravel核心目录文件介绍

app——应用程序的核心代码,项目的业务逻辑主要放这个文件夹
app/Http/Controllers——是MVC中的C控制层文件夹,控制层写在这里
bootstrap——包含框架启动跟自动加载配置的文件
config——包含所有应用程序的配置文件
database——包含数据库迁移与数据填充文件
public——包含入口以及项目静态资源文件,以后项目的图片、js、css都要放在public目录下
resources——包含视图以及原始的资源文件
resources/views——是MVC中的V视图文件夹,视图页面都要写在这里
storage——包含编译后的模板文件,以及基于文件的session、文件缓存、日志和其它框架产生的文件
tests——单元测试目录,放测试代码
vendor——包含composer下载的依赖模块

路由简介

简单的说就是将用户的请求转发给相应的程序进行处理,作用就是建立url和程序之间的映射,好处是我们可以灵活的修改和美化路由,而不需要对程序本身进行修改;
laravel中的路由请求类型有get、post、put、patch、delete

get

//第一个参数是自定义路由名,第二个是匿名函数体
Route::get('basic1',function () {
   return 'hello world';
});

post
Laravel框架为了防止跨域请求攻击(CSRF)而为用户生成的随机令牌,post请求如果没有验证token,就会出现报错信息。解决方法:在form表单中添加一个隐藏域,携带token参数即可:

<input type="hidden" name="_token" value="{{csrf_token()}}">
Route::post('basic2',function () {
   return 'Basic2';
});
//match需要指定路由请求类型
Route::match(['get','post'],'test',function () {
    return 'test';
});
//any响应所有路由请求类型
Route::any('test2',function () {
   return 'test2';
});
Route::get('user/{id}',function ($num) {
    return 'user--' . $num;
});
//路由默认值
Route::get('user/{name?}',function ($user = 'gsy') {
   return 'user-name-' . $user;
});
//利用正则表达式限制
Route::get('user/{name?}',function ($user = 'gsy') {
   return 'user-name-' . $user;
})->where('name','[A-Za-z]+');
//多参数正则匹配
Route::get('user/{id}/{name?}',function ($id,$user = 'gsy') {
   return 'user-id-' . $id . '-name-' . $user;
})->where(['id' => '[0-9]+','name' => '[A-Za-z]+']);
//用route函数生成与别名对应的URL
Route::get('user/member-center',['as' => 'center',function () {
    return route('center');
}]);
Route::group(['prefix' => 'member'], function () {
    Route::get('user/member-center',['as' => 'center',function () {
        return route('center');
    }]);
    Route::get('test', function () {
       return 'member-test';
    });
});
Route::get('view', function () {
    return view('welcome');
});

Laravel中的路由是相当强大,能接受请求、能做出相应的处理还能输出视图,真正的项目中路由只用来接收请求,并转化给控制器中的方法进行处理,很少会在路由中输出视图;

上一篇 下一篇

猜你喜欢

热点阅读