[2018-01-12] laravel中的MVC
路由里面可以做所有事情,但是真正的项目当中,路由只用来接收请求,并转发给控制器的方法进行处理

首先我们先了解一下
一、app/Http/routes路由的用法:
方法一、
这种方法写完后在控制器创建方法是直接写名称就行了,但这个方法会让我们在每在控制器写一个方法时,都要去routes里面配置一次路由的;
any是任何方式的传值都能接收:Route::any('/home', 'HomeController@home');
post是只接受以post传值的方法:Route::post('/home', 'HomeController@home');
get是只接受以get传值的方法 :Route:get('/home', 'HomeController@home');
图解:

方法二、
直接写控制器名称但这也有要求的 介绍如下
路由中书写
Route::controller('/', 'HomeController');
图解:

这种方式路由中只需要配置一次,完成后,我们在控制器中在建立方法时只需要加上get,and,post前缀就行了。
如下:

切记:在传参数时前面要加上传参方式,然后在书写方法名称,记住首字母要大写,最好不要使用驼峰式命名,容易报错。
如果跳转路径的话,是一样的直接跳转方法名称就好了;

二、app/Http/Controllers(控制器路径),resources/views(视图路径)和自定义的Model的用法:
1.如何创建一个控制器
找到控制器路径书写方法名就行

在控制器内的创建方式:
<span style="font-size:14px;"><?php
namespace App\Http\Controllers; //调用laravel中一封装好的控制类文件
use App\Http\Controllers\Controller;//调用Controller控制器的路径;
class HomeController extends Controller
{
public function getIndex(){
return redirect('/login/log');//跳转控制器
}
public function getShow(){
return view('index',['data'=>$data]);//加载视图层和传值方式;
}
}</span>
创建一个Model层
首先我们要知道在laravel5.2中model层其实是自行创建的,只不过在控制调用时加上use路径就好了;
我们可以直接建立app目录下或者创建一个文件夹将model写入里面;
在内我们要增删改查的话进入laravel的在线手册即可,里面有详细的说明和用法;
在app下创建:

在model中的书写:
<span style="font-size:14px;"><?php
namespace App;
use Illuminate\Database\Eloquent\Model;//调用Model方法的读写路径;
use Illuminate\Support\Facades\DB;//调用DB方法的读写路径;(如果不使用这种方法,这个可以不用掉用)
class Country extends Model
{
protected $tableName = 'country';//表名称;
public function index()//查
{
return $this->all();//$this相当于Model和DB重新组合成的一个类,这个$this由于在DB中不存在all()的形式,所以这个$this指的是Model。
}
}</span>
创建Views视图层:在创建Views是最简单的但在laravel中我们就要写成php形式的了;
方法如下:

跳转方式:
在视图层中加载样式引用方法:{{ URL::asset(‘’) }};
控制器(C)
1.怎么新建一个控制器?
在App\Http\Controllers目录下新建一个名为:MemberController的控制器
<?php
namespace App\Http\Controllers; //命名空间
class MemberController extends Controller //继承于控制器基类
{
public function info($id)
{
return 'member-info-id-'.$id;
// return route('memberinfo'); //通过路由别名找到路由地址
}
}
2.控制器和路由怎样进行关联?
3.关联控制器后,路由的特性怎么用?
通过路由访问控制器// Route::get('member/info',['uses' => 'MemberController@info']);
// Route::get('member/info',['uses' => 'MemberController@info','as' => 'memberinfo']); //as:路由别名
// Route::get('member/{id}',['uses' => 'MemberController@info']); //路由参数
Route::get('member/{id}',['uses' => 'MemberController@info'])->where('id','[0-9]+'); //路由参数(条件)
视图(V)
1.怎样新建视图?
在resources\views目录下新建一个名为member-info.php的文件(支持原生php)
<?php echo 'member-info-php';
默认模板
在resources\views目录下新建一个名为info.blade.php的文件(在控制器中输出的时候不需要书写全名,只需要输入blade前面的部分就可以了)
2.怎样输出视图?
在控制器中return view('文件名’);
一般一个控制器会对应一个视图目录(输出的时候记得要加上目录的名称)
在控制器中可以添加变量,在模板中调用标量需要用:{{$变量名}}来调用。注意:.blade.php才可以输入变量
模型(M)
1.怎样新建模型?
在App目录下新建Member.php文件
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
public static function getMember() //静态方法
{
return 'member name is chenlin';
}
}
2.怎样使用模型?
在控制中一定要记得导入你所创建的类
<?php
namespace App\Http\Controllers; //命名空间
use App\Member; //导入类
class MemberController extends Controller //继承于控制器基类
{
public function info($id)
{
return Member::getMember(); //返回静态方法
}
}
[2018-01-12] laravel中的MVC的更多相关文章
- cron以及在laravel中使用cron
yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service #启动服务 /bin/systemct ...
- PHP中的MVC
在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...
- 在Laravel中一步一步创建Packages
首先要看一下Laravel官方文档,这是最新4.2的文档,假设想看中文的话点击此处,基本一样.这个github上的库setup-laravel4-package,也是一步一步介绍怎样创建一个包.并关联 ...
- 2018年12月8日广州.NET微软技术俱乐部活动总结
吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...
- 2018.5.12 storm数据源kafka堆积
问题现象: storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积. 排查: 1.查看stormUI, storm拓扑结构如下: 看现 ...
- laravel中请求用例$request可用的一些方法小结
laravel中$request可用的一些方法小结 1,请求方法的获取 $method = $request->method(); 2,检测请求方法 $res = $request->is ...
- SpringMVC(二六) SpringMVC配置文件中使用mvc:view-controller标签
在springmvc中使用mvc:view-controller标签直接将访问url和视图进行映射,而无需要通过控制器. 参考springmvc.xml内容: <?xml version=&qu ...
- 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)
20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)
在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套 ...
随机推荐
- 快学Scala 第七课 (类构造函数)
类 主构造器: class Person (var name: String){ } 主构造参数可以不带val或者var,如果没有被其他方法使用,则不保存为字段. 如果被其他方法使用,则被升格为字段, ...
- 03-Django基础概念和MVT架构
一.Django基础 掌握Django的 MVT 架构的使用 掌握Git管理源代码 主要内容 了解Django的 MVT 架构的使用流程 使用Django完成案例 : 书籍信息管理 MVC介绍 MVC ...
- 【主动学习】Variational Adversarial Active Learning
本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...
- Golang 实现设计模式 —— 装饰模式
概念 "用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能" "动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活" 何时 ...
- SpringBootSecurity学习(24)前后端分离版之OAuth2.0 应用登记
应用登记 一个应用要求 OAuth 授权,必须先到对方网站登记,让对方知道是谁在请求.举个例子,下面是github的登记页面: https://github.com/settings/applicat ...
- C语言基于窗体命令行打包,解包和浏览程序
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>#inc ...
- 玩转ADB命令(ADB命令使用大全)转载
ADB是什么 Adb的全称为Android Debug Bridge:android调试桥梁,下图为Android官方对adb的介绍:可以看出,Android的初衷是用adb这样的一个工具来协助开发人 ...
- libevent::日志
LibEvent 能记录内部的错误和警告日志,如果编译进日志支持功能,也会记录调试信息.默认情况下这些消息都是输出 到 stderr,你也可以通过提供自己的日志函数的方法来覆盖这种行为. 为了覆盖 L ...
- NodeJs编写Cli实现自动初始化新项目目录结构
应用场景 前端日常开发中,会遇见各种各样的cli,这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习.交流.开发. 注释:文章附有源码链接! 使用工 ...
- Git & Github 使用教程【1】入门篇
Github教程 1-1 版本管理工具简介 主要作用:备份文件.记录历史.回到过去.多端共享.独挡一面.团队协作 2-1 版本管理工具发展历史 3-1 Git下载和安装[略] 3-2 linux下安装 ...