laravel 之路由和MVC
一、路由 Routes\;
1. 路由简介
- 简单的说就是将用户的请求转发给相应的程序进行处理。
- 作用就是建立url和程序之间的映射
- 请求类型get 、 post、put、patch、delete
2. 基本路由
//基础路由-get/post/put/patch/delete
Route::get('basic1',function(){
return 'hello world';
}); Route::post('basic2',function(){
return 'hello world 2';
});
3. 多请求路由
//多请求路由-match/any
Route::match(['get','post'],'multy1',function(){
return 'multy1';
}); Route::any('multy2', function(){
return 'multy2';
});
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.'-User-name-'.$name;
})->where(['id'=>'[0-9]+', 'name'=>'[A-Za-z]+']);
5. 路由别名
//路由别名
Route::get('user/center', ['as' => 'center', function(){
return route('center'); //查找路由路径时使用别名即可
}]);

6. 路由群组
//路由群组-访问群众中路由时需要加上前缀,如 /member/user/center
Route::group(['prefix' => 'member'], function(){ //路由别名
Route::get('user/center', ['as' => 'center', function(){
return route('center');
}]); Route::any('multy2', function(){
return 'member-multy2';
}); });
7. 路由中输出视图
//路由中输出视图-视图所在目录 resources/views/
Route::get('view', function(){
return view('welcome');
});
二、控制器 App\Http\Controllers;
**创建控制器 -> 关联路由和控制器 -> 相关路由特效
<?php
namespace App\Http\Controllers;
use App\Member; class MemberController extends Controller
{
public function info($id){
return 'member-info';
//return route('memberinfo');
//return 'member-info-id-'.$id;
} public function getMember(){
return Member::getMember();
}
}
//路由访问控制器
//方式一
Route::get('member/info', 'MemberController@info');
//方式二
Route::get('member/info', ['uses' => 'MemberController@info']);
//取别名
Route::get('member/info', [
'uses' => 'MemberController@info',
'as' => 'memberinfo'
]); //传递类型限制的参数
Route::any('member/{id}', ['uses' => 'MemberController@info'])
hu ->where('id', '[0-9]+');
//hu
Route::get('member', 'MemberController@getMember');

三、视图 resources\view\;
1. 新建视图
- info.php 原生模板
- info.blade.php 默认模板
2. 输出视图
- return view('info');
- 一般习惯一个控制器对应一个view目录(文件夹)
- return view('member/info')
- return view('member/info', ['name' => 'sean']);
//MemberController.php
public function views()
{
//return view('member-info');
return view('info');
//传递变量给视图
//return view('info',
// ['name' => 'sean'],
// ['age' => 18]
//);
} //web.php
Route::any('views', 'MemberController@views'); //info.blade.php
info blade
{{$name}}{{$age}}



四、模型 APP\
1. 模型的创建
一般一个模型对应数据库中的一张数据表
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model{
//每个模型对应一个数据表,用于交互数据库
//指定表名
protected $table = 'student';
//指定主键
protected $primaryKey = 'id';
//指定允许批量赋值的字段
protected $fillable = ['name', 'age'];
//指定不允许批量赋值的字段
protected $guarded = [];
public static function getStudent(){
return 'student is sean';
}
//自动维护时间戳
// public $timestamps = true; //针对时间戳 将其转换为标准日期格式
// protected function getDateFormat()
// {
// return time();
// } //针对时间戳 不做格式处理
// protected function asDateTime($val)
// {
// return $val;
// } }
2. 模型的使用
//StudentController.php
<?php namespace App\Http\Controllers;
use App\Student; class StudentController extends Controller
{ public function info(){
return Student::getStudent();
}
}
//web.php
Route::get('student', 'StudentController@info');

五、Reference
laravel 之路由和MVC的更多相关文章
- Laravel教程 五:MVC的基本流程
Laravel教程 五:MVC的基本流程 此文章为原创文章,未经同意,禁止转载. Controller 期间受到很多私事影响,终于还是要好好写写laravel的教程了. 上一篇我们说了数据库和Eloq ...
- [PHP] - Laravel - Route路由
前言 这里使用的是Laravel 5 PHP Laravel的路由比较强悍,但也正因如此,不统一而容易凌乱.比如在路由中可以直接写方法操作(破坏封装啊) 以下是个人学习的例子,不供参考 路由中的直接方 ...
- laravel的路由分组,中间件,命名空间,子域名,路由前缀
laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等. 这样把路由组合在一起,方便管理,维护性更好. Rou ...
- laravel之路由
laravel之路由设置 代码如下: 访问就是: 代码附上: <?php /*|--------------------------------------------------------- ...
- 005. Asp.Net Routing与MVC 之三: 路由在MVC的使用
上次讲到请求如何激活Controller和Action,这次讲下MVC中路由的使用.本次两个关注点: 遗留:ModelBinder.BindModel的过程 MVC中路由的使用 MVC 5中的Acti ...
- Laravel中路由怎么写(二)
1.路由命名——给路由起个名字 1.1 基本使用 我们使用as关键字来为路由命名: Route::get('/hello/Laravel',['as'=>'academy',function() ...
- laravel 配置路由 api和web定义的路由的区别详解
1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...
- ASP.NET Core 6框架揭秘实例演示[02]:基于路由、MVC和gRPC的应用开发
ASP.NET Core可以视为一种底层框架,它为我们构建出了基于管道的请求处理模型,这个管道由一个服务器和多个中间件构成,而与路由相关的EndpointRoutingMiddleware和Endpo ...
- [Laravel] 02 - Route and MVC
前言 一.良心资料 英文 Laravel 框架:https://laravel.com/ 教程:https://laracasts.com/series/ laravel-from-scratch-2 ...
随机推荐
- javaWeb核心技术第三篇之JavaScript第一篇
- 概述 - JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言 - 作用:给页面添加动态效果,校验用户信息等. - 入门案例 - js和html的整合 - 方式1:内联式 ...
- 每秒100W请求,12306秒杀业务,架构如何优化?
如<同样是高并发,QQ/微博/12306的架构难度一样吗?>一文所述,同样是高并发场景,三类业务的架构挑战不一样: QQ类业务,用户主要读写自己的数据,访问基本带有uid属性,数据访问锁冲 ...
- for循环使用element的折叠面板遇到的问题-2
需求:每次添加一个折叠面板时,让最新的折叠面板展开,其余的关闭 动态控制展开折叠面板,首先绑定name,v-model = activeName 我们的项目中是当添加折叠面板时,直接push进这个数组 ...
- URL跳转绕过姿势
POC "@" http://www.target.com/redirecturl=http://whitelist.com@evil.com "\" http ...
- How to recover a skipped tablespace after an incomplete recovery? (Doc ID 1561645.1)
How to recover a skipped tablespace after an incomplete recovery? (Doc ID 1561645.1) APPLIES TO: Ora ...
- Automatic Tuning of Undo Retention 常见问题 (Doc ID 1579779.1)
Automatic Tuning of Undo Retention Common Issues (Doc ID 1579779.1) APPLIES TO: Oracle Database - En ...
- Linux系统学习 三、网络基础—虚拟机网络配置
Linux网络基础 Linux的ip地址配置 Linux网络配置文件 常用网络命令 虚拟机网络参数配置 1.配置Linux的IP地址 首先配置一个IP地址,让IP生效. ifconfig查看当前网络配 ...
- 小程序-小菊花loading
界面----交互 wx.showLoading() 显示loading提示框.需主动调用wx.hideLoading()才能关闭提示框 参数: 属性 类型 默认值 必填 说明 title string ...
- ssm-restful风格
码云 https://gitee.com/MarkPolaris/ssm-test02
- python做中学(三)条件编译的用法
C代码中经常使用条件编译,python中该怎么用呢?Python没有像C或C或Java甚至Java一样编译,python文件被“即时”编译,您可以将其视为类似于Basic或Perl的解释语言 只需使用 ...