laravel路由以及mvc

1.开发环境的搭建
laravel框架各个版本对php的要求
5.1 5.2 php 5.5.9+
4.2 php 5.4+
4.1 php 5.3.7+
2.开发环境的推荐
mac mamp
win xammp phpstudy等等
linux 自己编译安装
3.下载安装laravel
laravel学院提供的相关资源下载
http://laravelacademy.org/resources-download
下载完了之后解压就是一个laravel项目,可以改名字并放入搭建的服务器环境中
在浏览器中测试  http://localhost/laravel/public/


4.laravel核心目录文件介绍
推荐ide phpstorm
app  包含了应用程序的核心代码:自己写的代码(业务逻辑)
     其中http中包含了mvc中的c controllers
bootstrap  包含框架启动和自动加载配置的文件
config  包含所有应用程序的配置文件
database  数据库以及填充文件
public  包含了入口以及项目的静态资源文件比如图片js css
resource  包含了视图以及原始的资源文件view 就是mvc中的v
storge  包含了编译后的模板文件以及基于文件的session文件缓存等等
test  放的是测试代码(单元测试)
vendor  包含composer加载的依赖文件


5.laravel中的路由和mvc
5.1 路由
路由简介
简单的说就是将用户的请求转发给相应的程序进行处理
作用就是建立url和和程序(一般是指处理函数)之间的映射
请求类型 get.post.put.patch.delete
5.2 基本路由
Route::get('basic1,function(){
return 'Hello World';
}');
Route::post('basic2,function(){
return 'Hello World';
}');
5.3多请求路由(match)
Route::match(['get','post'],'multy1',function(){
return 'multy1';
});
any响应所有路由
Route::any('multy2',function(){
return 'multy2';
});
5.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.'-name-'.$name;
})->where(['id'=>'[0-9]+','name'=>'[A-Za-z]+']);
5.5路由别名
可以美化url,可以直接通过命名之后的路由进行重定向,带参数的路由可以指定初始值
在别的地方使用很方便
Route::get('user/member-center',['as'=>'center',function(){
return route('center');
}]);
5.6路由群组(通过路由前缀实现)
Route::group(['prefix'=>'member'],function(){
Route::any('multy2',function(){
return 'member-multy2';
});
Route::get('user/member-center',['as'=>'center',function(){
return route('center');
}]);


});
只需要在打开时候加上一个member前缀
5.7路由中输出视图
Route::get('view', function () {
    return view('welcome');
});


5.8 MVC全名Model-View-Controller(模型-视图-控制器)
Model:是应用程序中用于处理应用程序数据逻辑的部分
View:是应用程序中用于处理数据显示的部分
Controller:是应用程序中处理用户交互的部分
1.从Model中获取数据并输入到View中
2。接收View中的用户操作,然后做出相应的响应.


6.控制器
创建控制器
<?php


namespace App\Http\Controllers;//命名空间
class MemberController extends Controller
{
public function info($id)
{
return 'member-info-id='.$id;


//return route('memberinfo');
}




}
在路由中关联
//关联控制器的两种方法
//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@info'])
->where('id','[0-9]+');//利用正则对路由进行限制
7.视图
一般来说,一个控制器会对应一个目录(在view下)并且把相关的文件放入这个目录下面
默认xx.blade.php如info.blade.php
控制器中输出视图
//带参数输出
return view('member/info',[
'name'=>'sean',
'age'=>18
]);
//在模板中变量写法{{$name}},{{$age}}


//不带参数输出
//return view('member/info');
8.模型
8.1创建模型(在app下直接创建Member.php)
<?php


namespace App;
use Illuminate\Database\Eloquent\Model;//注意use导入类
class Member extends Model
{
public static function getMember()
{
return 'member name is sean';
}
}
8.2在控制器中实现
return Member::getMember();
注意在控制器中加use App\Member;导入类



猜你喜欢

转载自blog.csdn.net/qq_35472880/article/details/80086157