Laravel基础篇学习笔记(一):Laravel 中的路由和 MVC

这里主要是通过慕课网轻松学会Laravel-基础篇进行学习 Laravel 框架,这里的内容都是学习之后的笔记。

1)Laravel 的安装及核心目录文件;

环境:PHP5.5.9+;
下载:Laravel & Lumen 一键安装包下载
运行:把框架解压放到项目运行目录下面,浏览器输入http://192.168.2.110/laravel/public,可以看到Laravel 5页面,成功安装;
运行过程:

// 文件:laravel/app/Http/route.php
Route::get('/', function () {
    return view('welcome');
});

// 文件:laravel/resources/views/welcome.blade.php
模板文件,“Laravel 5”页面显示

2)路由;

路由简单的说就是将用户的请求转发给相应的程序进行处理;
路由的作用是建立 url 和程序之间的映射;
请求类型包括get、post、put、match、delete;

以下代码在路由文件 laravel/app/Http/route.php 编写

a)基础路由

Route::get('basic1', function(){
    return 'Hello World';
});     // 访问路径:http://192.168.2.110/laravel/public/basic1

Route::post('basic2', function(){
    return 'Basic2';
});     // post请求不能通过浏览器域名访问的

b)多请求路由

// 混合请求
Route::match(['get', 'post'], 'multy1', function() {
    return 'multy1';
});     // 访问路径:http://192.168.2.110/laravel/public/multy1

// 响应所有请求
Route::any('multy2', function() {
    return 'multy2';
});     // 访问路径:http://192.168.2.110/laravel/public/multy2

c)路由参数

Route::get('user/{id}', function($id){
    return 'User-id-' . $id;
});     // 访问路径:http://192.168.2.110/laravel/public/user/1

// 如果不带参数,显示“User-name-”
Route::get('user/{name?}', function($name = null){
    return 'User-name-' . $name;
});     // 加问号,才能够访问http://192.168.2.110/laravel/public/user,否则报错

// 如果不带参数,显示“User-name-sean”
Route::get('user/{name?}', function($name = 'sean'){
    return 'User-name-' . $name;
});

d)正则表达式

// 不符合where里的规则,这无法访问,会报错
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 . '-name-' . $name;
})->where(['id'=>'[0-9]+', 'name'=>'[A-Za-z]+']);

e)路由别名

// 使用别名,可以在控制器或者路由或者模板等,用 “route()” 函数生成别名对应的URL;
// 注意中括号位置,是把别名和function括起来;
Route::get('user/center', ['as' => 'center', function() {
    return route('center');
}]);
// 显示结果:http://192.168.2.110/laravel/public/user/center

f)路由群组

//加前缀prefix为member
Route::group(['prefix' => 'member'], function() {
    Route::get('user/center', ['as' => 'center', function() {
        return route('center');
    }]);    //该路由路径为:http://192.168.2.110/laravel/public/member/user/center

    Route::any('multy2', function() {
        return 'member-multy2';
    });     //该路由路径为:http://192.168.2.110/laravel/public/member/multy2
});

g)路由中输出视图

Route::get('/view', function () {
    return view('welcome');
});     //该路由路径为:http://192.168.2.110/laravel/public/view

3)控制器;

控制器文件:在项目下建立 laravel/app/Http/Controllers/MemberController.php
<?php
namespace App\Http\Controllers;     //需要定义命名空间
class MemberController extends Controller
{
    public function info()
    {
        // echo route('memberinfo') . '<br />';
        return 'member-info';
    }
    public function info2($id)
    {
        return 'member-info-id-' . $id;
    }
}
路由定义:laravel/app/Http/route.php
// 两种定义路由方式
Route::get('member/info', 'MemberController@info');
Route::get('member/info', ['uses' => 'MemberController@info']);

// 起别名
Route::any('member/info', [
    'uses' => 'MemberController@info',
    'as' => 'memberinfo'
]);

// 参数绑定
Route::any('member/{id}', ['uses' => 'MemberController@info2'])->where('id', '[0-9]+');

4)视图;

a)视图的输出

// 路由
Route::get('member/info', 'MemberController@info');

// 控制器路径:laravel/app/Http/Controllers/MemberController.php
public function info() {
    return view('member-info');
}

// 视图路径:laravel/resources/views/member-info.php
member-info php

// 最终在浏览器输入 http://192.168.2.110/laravel/public/member/info 即可看到视图内容

b)变量的输出

// 路由
Route::get('member/info', 'MemberController@info');

// 控制器路径:laravel/app/Http/Controllers/MemberController.php
public function info() {
    return view('member/info', [
        'name' => '天秤vs永恒',
        'age' => 18,
    ]);
}

// 视图路径:laravel/resources/views/member/info.blade.php
member/info blade
{{$name}} {{$age}}

// 最终在浏览器输入 http://192.168.2.110/laravel/public/member/info 即可看到视图内容
member/info blade 天秤vs永恒 18

5)模型;

// 路由路径:laravel/app/Http/routes.php
Route::get('member/info', 'MemberController@info');


// 模型路径:laravel/app/Member.php (模型文件首字母需要大写)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
    public static function getMember()
    {
        return 'member name is sean';
    }
}


// 控制器路径:laravel/app/Http/Controllers/MemberController.php
<?php
namespace App\Http\Controllers;
use App\Member;     //需要调用模型类
class MemberController extends Controller
{
    public function info()
    {
        return Member::getMember();
    }
}


// 最终在浏览器输入 http://192.168.2.110/laravel/public/member/info 即可看到视图内容
member name is sean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值