laravel 之路由和MVC
2024-09-06 20:44:59
一、路由 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
最新文章
- ios UIButton设置单选效果,以及同时设置图片和标题
- WebView上实现Java与JavaScript交互
- Load xlsx in a folder to RDBMS table with Talend
- 在Eclipse中配置Tomcat 创建和运行Servlet/JSP
- Linux 计划任务 Crontab 笔记与总结(1)
- 学习Linux第二天
- Oracle中获取执行计划的几种方法分析
- js学习--DOM操作详解大全一(浏览器对象)
- vijos国庆节模拟赛之繁星春水
- Linux多命令顺序运行
- accept: Invalid argument linux 网络编程
- 电脑机器刷BIOS
- java初级开发一系列的工具安装配置
- SQL server学习(五)——T-SQL编程之存储过程
- WebRTC技术调研
- LINUX配置Django
- TLB的作用及工作原理
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
- flask_admin 笔记七 扩展功能
- HTTP基础知识2