Laravel基础篇-路由、视图、模型、Blade模板(1)

简介: Laravel基础篇-路由、视图、模型、Blade模板(1)

一、Laravel简介

框架提供的功能:

1、数据库DB

2、缓存Cache

3、会话Session

4、文件上传


流行框架的优点

文档齐全

社区活跃

后期支持


Laravel简介

1、简洁,优雅

2、验证,路由,session缓存,数据库迁移功能,单元测试


版本选择

长期支持 LTS Long Time support


二、环境配置

服务器环境


$ php -v
PHP 7.1.23

Laravel 5.8 要求:PHP >= 7.1.3

文档:https://laravel.com/docs/5.8


MVC数据交互

视图View <-> 控制器Controller <-> 模型Model

Mac MAMP

Win XAMPP


phpinfo.php


<?php
phpinfo();

设置国内镜像


# 查看全局设置
composer config -gl
# 设置镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
# 解除镜像
composer config -g --unset repos.packagist

参考国内的Composer全量镜像汇总


创建项目


$ composer create-project laravel/laravel=5.8.* demo --prefer-dist
$ cd demo
$ php artisan --version
Laravel Framework 5.8.35
# 启动服务
$ php artisan serve

访问:http://127.0.0.1:8000


整个文件夹大小

Laravel Framework 5.8.35 32.8M

ThinkPHP_5.0.24_with_extend 5.6M


三、路由

1、路由简介

路由将用户的请求转发给对应的程序进行处理

作用:建立url和程序之间的映射

请求类型:get、post、put、patch、delete

路由文件:routes/web.php


2、基本路由


Route::get('hello', function () {
    return 'hello world';
});
Route::post('post', function () {
    return 'post';
});

3、多请求路由


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

4、路由参数



Route::get('detail/{id}', function ($id) {
    return 'detail-id: ' . $id ;
});
// 默认参数
Route::get('detail/{name?}', function ($name = null) {
    return 'detail-name: ' . $name ;
});
// 正则判断参数类型
Route::get('detail/{id}', function ($id) {
    return 'detail-id: ' . $id ;
})->where('id', '\d+');
Route::get('detail/{name?}', function ($name = null) {
    return 'detail-name: ' . $name ;
})->where('name', '[A-Za-z]+');
// 多个参数校验
Route::get('detail/{id}/{name?}', function ($id, $name = null) {
    return 'detail-id: ' . $id  . ' detail-name: ' . $name ;
})->where(['id' => '\d+', 'name' => '[A-Za-z]+']);

5、路由别名


Route::get('path', ['as'=>'alias', function(){
    return Route('alias');
}]);

6、路由群组


Route::group(['prefix' => 'user'], function (){
   // 访问方式:user/name
   Route::get('name', function (){
       return 'user name';
   });
   // 访问方式:user/age
    Route::get('age', function (){
        return 'user age';
    });
});

7、路由中输出视图


Route::get('/', function () {
    return view('welcome');
    // resources/views/welcome.blade.php
});

四、控制器

路由只接收请求,具体业务逻辑交由控制器处理


1、新建控制器

app/Http/Controllers/MemberController.php

namespace App\Http\Controllers;
class MemberController extends Controller
{
    function info(){
        return 'hello world';
    }
}

2、控制器和路由关联


Route::get('member/info', 'MemberController@info');
// 或者
Route::get('member/info', ['uses' => 'MemberController@info']);

3、关联控制器后,路由特性使用


// 别名
Route::get('member/info', [
    'uses' => 'MemberController@info',
    'as' => 'memberinfo'
]);
// 控制器中使用别名
// Route('memberinfo');
// 路由参数
Route::get('member/info/{id}', 'MemberController@info');
// 控制器接收参数
// function info($id){
//     return 'info:' . $id;
// }
// 验证路由参数
Route::get('member/info/{id}', 'MemberController@info')
    ->where('id', '[0-9]+');


相关文章
|
4天前
|
资源调度 前端开发 JavaScript
推荐一款可以自动创建视频的前端Ract框架
推荐一款可以自动创建视频的前端Ract框架
|
5月前
|
小程序
laravel8(二)配置自定义路由文件
关于laravel5添加自定义路由文件,请移步《laravel5.8(十五)新增自定义路由文件》 这里大概记录一下laravel8添加自定义路由文件的过程: 持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情 1:首先在routes目录下创建你要添加的自定义路由文件 我这里直接复制的web.php。 2:修改app/Providers目录下RouteServiceProvider.php文件 我这里也是直接复制web部分的代码改的名字 3:修改app/Http目录下Kernel.php文件 我这里还是直接复制web部分的代码改的名
37 1
|
11月前
|
机器学习/深度学习 SQL 分布式计算
PAI-Designer中的EasyRec组件和预制推荐模板介绍
EasyRec是一个配置化的企业级推荐算法框架(https://github.com/alibaba/EasyRec),是阿里云PAI平台自研的适用于推荐广告、搜索场景的深度学习算法库,它实现了多种业界常用的模型,包括DSSM、MIND召回模型,DeepFM、多塔、DIN排序模型,还有ESMM、DBMTL、MMoE等多目标排序模型。 本文介绍EasyRec的PAI-Designer组件和预制模板。
317 1
|
JavaScript 程序员
vue设计一个高扩展性能的路由和实现菜单与路由相结合
我们知道路由一般有两种方案,第一种是基于我们的配置的,另一个就是基于我们自己本身写代码的程序猿自己约定的,约定就是第三方轮子提供的工具暗战其规范生成的路由的配置。
vue设计一个高扩展性能的路由和实现菜单与路由相结合
|
调度 Python
Flask学习与项目实战4:视图高级之蓝图和子域名、类视图
对于大项目,代码都不放在app.py里面,需要分类。 即类似javaspringboot中的分层?每个功能分为一个更小规格的层次。 url_prefix 就是 蓝图的前缀。 和book相关的都在book中,和用户有关的都在user中。
Flask学习与项目实战4:视图高级之蓝图和子域名、类视图
|
测试技术 PHP
Laravel 8 新特性: 动态Blade组件、事件监听器优化、事件测试助手
Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。
281 0
|
SQL 缓存 PHP
Laravel基础篇-路由、视图、模型、Blade模板(2)
Laravel基础篇-路由、视图、模型、Blade模板(2)
118 0
|
缓存 前端开发 PHP
Laravel基础篇-路由、视图、模型、Blade模板(3)
Laravel基础篇-路由、视图、模型、Blade模板(3)
145 0
|
前端开发
symfony2框架配置页面
symfony2框架配置页面
102 0
symfony2框架配置页面
|
PHP
【laravel】@11 blade模板
【laravel】@11 blade模板
89 0
【laravel】@11 blade模板