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 ...
随机推荐
- Java基础专题
Java后端知识点汇总——Java基础专题 全套Java知识点汇总目录,见https://www.cnblogs.com/autism-dong/p/11831922.html 1.解释下什么是面向对 ...
- JavaScript动态加载script方式引用百度地图API 拓展---JavaScript的Promise
上一篇博客JavaScript动态加载script方式引用百度地图API,Uncaught ReferenceError: BMap is not defined 这篇文章中我接触到一个新的单词:Pr ...
- apache部分报错解决方法
AH00558: 进入apache文件夹下的conf文件夹,打开httpd.conf文件,用ctrl+F找到ServerName,如下图 在下面加上一句: ServerName domain_name ...
- opencv-python 图像基础处理(二)
图像阈值 ret, dst = cv2.threshold(src, thresh, maxval, type) - src: 输入图,只能输入单通道图像,通常来说为灰度图- dst: 输出图- th ...
- elasticsearch failed to obtain node locks
0x00 事件 重启服务器后,启动 elasticsearch 失败,在日志中观察到以下错误: [2019-10-25T17:29:54,639][WARN ][o.e.b.Elasticsearch ...
- element-ui中的hover 光标移入某一个具体的td 有hover效果
<template> <div> <el-table :data="tableData" style="width: 100%"& ...
- ajax给全局变量设置值,请先关掉异步上传效果
$.ajax({ type: 'POST', url: "/downloadExcelInfo", timeout: 0, async: false, contentType: & ...
- LG1345 「USACO5.4」Telecowmunication 最小割
问题描述 LG1345 题解 点边转化,最小割,完事. \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; tem ...
- subprocess模块(了解)
目录 一.subprocess模块 一.subprocess模块 subprocess模块允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入.标准输出.标准错误以及返回码等.更 ...
- 07-selenium、PhantomJS(无头浏览器)
selenium(自动化测试工具可用于在爬虫中解决js动态加载问题) 简介(本质就是模仿浏览器工作) Selenium 是什么?一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safar ...