Laraver学习笔记—框架基本介绍

目录介绍

app       应用程序核心代码 业务逻辑
    -->http
           -->controller 控制器目录
bootstrap 框架启动和自动加载配置的文件目录
config    配置文件目录
database  数据库文件目录
public    入口和项目的静态资源文件css、js等
resource  原始资源文件和视图
    -->views  视图目录
storage   编译后的模板文件
    -->framework
        -->views 视图缓存文件目录
tests     单元测试目录
vendor    composer加载依赖模块


这里需要注意的是controllerviewmodel所在的目录

  • controller  app->http->controllers

  • view           resource->views

  • model         app

路由

路由简介

  1. 将用户的请求转发给相应的程序进行处理

  2. 建立url和程序之间的映射

  3. 请求类型get、post、put、patch、delete、

基础路由

get

Route::get('get',function() {
    return 'I’m get';
});

post

Route::post('post',function() {
    return 'I’m post';
});

多请求路由

match 指定请求方式

Route::match(['get', 'post'],'match', function() {
    return 'I’m match';
});

any 所用的请求方式都能接收

Route::any('any', function() {
    return 'I’m any';
});

路由参数

获取请求路由的uri区段
举例1:

Route::get('user/{id}', function($id) {
    return 'user-' . $id;
});

举例2:路由参数设置默认值

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

举例3:路由参数设置正则

// 参数添加正则在后面接上where
// 第一个参数为路由参数 第二个参数为正则表达式
Route::get('user/{name?}', function($name = 'cuihua') {
    return 'user-name-' . $name;
})->where('name', '[A-Za-z]+');

举例4:多参数设置对应正则

// 参数和对应正则以数组形式关联
Route::get('user/{id}/{name?}', function($id, $name = 'cuihua') {
    return 'user-id='.$id.'-name=' . $name;
})->where(['id' => '[0-9]+', 'name' => '[A-Za-z]+']);

路由别名

1、以数组形式增加as键值建立别名
1、项目中用route()函数根据别名可以取出对应的完整的url地址
2、如果控制器中的方法名改变 那么route()函数根据别名取出的url地址也会随之改变

// 项目中用route函数根据别名取出真正的、完整的url地址
Route::get('user/as', ['as' => 'ias', function() {
    return route('ias');
}]);

路由群组

通过增加路由前缀建立路由群组

// 路由群组
Route::group(['prefix' => 'user'], function () {
    // 在路由群组中的url访问需增加群组前缀
    // 如:http://localhost/laravel/public/user/user/as
    Route::get('user/as', ['as' => 'ias', function() {
        return route('ias');
    }]);
    // http://localhost/laravel/public/user/get
    Route::get('get',function() {
        return 'member I’m get';
    });
});

路由中输出视图

使用view()函数输出视图

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

控制器

控制器规则

  1. 控制器文件命名以驼峰法,如TestController.php

  2. 类名与文件名一致,且一样采用驼峰法

  3. 添加命名空间 namespace App\Http\Controllers;

新建控制器

上面有写到controller目录是在app->http->controllers下,新建TestController.php

namespace App\Http\Controllers;
class TestController extends Controller
{
    public function index($id) {
        return 'controller-test-index-id-'.$id;
    }
}

控制器路由

控制器路由与上面【路由】大章节里的路由写法基本一致,不同的是,第二个参数为定义指向该控制器的方法,可为数组形式

基本路由

// 字符串形式
Route::get('test/index', 'TestController@index');
// 数组形式
Route::get('test/index', ['uses' => 'TestController@index']);

路由别名

以数组形式增加as键值

Route::get('test/{id}', [
    'uses' => 'TestController@index',
    'as'   => 'testin'
])

添加参数正则

与上面【路由】大章节的路由正则一致,在最后增加where条件

Route::get('test/{id}', [
    'uses' => 'TestController@index',
    'as'   => 'testin'
])->where(['id' => '[0-9]+']);

模型

模型规则

  1. 模型命名首字母大写,采用驼峰法

  2. 命名空间 namespace App;

  3. 引用 use Illuminate\Database\Eloquent\Model;

  4. 模型类命名首字母大写与文件名一致

新建模型

模型目录在app下,新建一个Test.php的模型

namespace App;
use Illuminate\Database\Eloquent\Model;

class Test extends Model{}

视图

resource->views目录下新建viewtest.php为模板文件;

控制器输出视图

view()函数输出视图模板

public function index($id) {
    return view('viewtest', ['id' => $id]);
    // 如果在`views`目录下还有文件路径,输出视图时添加路径即可,如`view('test/test')`
}

输出视图变量

view()方法第二个参数增加数组变量即可

public function index($id) {
    return view('viewtest', ['id' => $id]);
}    

默认模板

建立默认模板文件test.blade.phptest为模板名称,输出视图则为view('test')

基础语法和流程控制

已有 2 条评论
  1. view() 方法引入的页面路径呢

    1. 在根目录下的resource->views里面,如果写在views的根目录下了,view('welcome')的时候,不用加路径

添加新评论