Laravel路由和控制器的绑定
路由和控制器的关系
路由文件地址在\app\Http\routes.php,我们来看两种不同的路由。
Route::get('/', function () {
return view('welcome');
});
Route::get('/hi', function () {
return 'hello world';
});
以上均为绑定匿名函数的路由,虽然可以返回视图,也可以返回字符串,但本质都是一样的。
Route::get('/blog','BlogController@index');
Route::get('/post/{slug}','BlogController@showPost');
这两种是绑定控制器的路由,控制器类BlogController下有两个函数,index和showPost,可以调用。
那么问题来了,究竟应该选用哪种?
你不可能把复杂的业务逻辑都写在一个匿名函数里,所以你要学会新建控制器。
Route::get('/mvc', 'MyController@hello');
一.添加新控制器
控制器文件夹地址在Laravel文件夹下\app\Http\Controllers,我们继续使用artisan控制台创建一个新控制器
php artisan make:controller MyController
然后,回到控制器目录,一份新的MyController.php文件被创建了,代码如下:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class MyController extends Controller
{
//
}
我们修改MyController类,同时再创建一个视图。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; class MyController extends Controller
{
public function hello()
{
return View('myview');
}
}
如果这么写,就意味着一旦用户访问URL:laravel/public/mvc,路由就会交给MyController控制器的hello函数,hello函数返回myview视图,即返回myview.blade.php
我们看看myview.blade.php的代码
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">{{ $d1 }}</div>
<div class="panel-body">
this is my view!
</div>
</div>
</div>
</div>
</div>
@endsection
这里的{{ $d1 }}希望用一个变量的值来代替,所以,我们把MyController控制器修改为
class MyController extends Controller
{
public function hello()
{
return View('myview',['d1'=>'a1']);
}
}
Laravel路由和控制器的绑定的更多相关文章
- laravel路由与控制器(资源路由restful)
目前我们大致了解了laravel下,在开始一个Http程序需要先定义路由.之前的例子中,我们的业务逻辑都是在路由里实现,这对于简单的网站或web应用没什么问题,当我们需要扩大规模,程序变得复杂,分层的 ...
- Laravel教程 二:路由,视图,控制器工作流程
Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就 ...
- laravel之路由和控制器与视图
路由和控制器: : 路由与视图: 访问:
- 原来 laravel 路由 参数可以为可选。。。 很灵活
基本路由 您的应用程序的绝大多数路由将在 app/routes.php 文件中定义.Laravel 中最简单的路由由一个 URI 和一个闭包调用组成. 基本 GET 路由 复制代码代码如下: Rout ...
- [转]Laravel 4之控制器
Laravel 4之控制器 http://dingjiannan.com/2013/laravel-controller/ 控制器 通常Laravel控制器文件放在app/controllers/目录 ...
- laravel路由基础
基础: 所有的laravel路由都定义在 app/Http/routes.php 这个文件里,会被框架自带加载.简单的路由会接受一个URI和一个Closure类. Route::get('foo', ...
- Laravel 5.2控制器--RESTful 资源控制器
laravel的资源控制器 一.创建资源控制器 在命令行上,创建一个新的资源控制器 php artisan make:controller TestController --resource 然后在你 ...
- [2018-01-12] laravel--路由(路由与控制器)
路由只用来接收请求 目前我们大致了解了laravel,在开始一个Http程序需要先定义路由.之前的例子中,我们的业务逻辑都是在路由里实现的,这对于简单的网站或web应用没什么问题,当我们需要扩大规模, ...
- Nodejs之MEAN栈开发(一)---- 路由与控制器
因为工作需要,最近再次学习了node,上一次学习node是2014年,纯粹是个人兴趣,学了入门之后没有运用,加上赶别的项目又不了了之.这次正好捡起来.废话不多说,这里的MEAN指的是Mongodb.E ...
随机推荐
- 【BZOJ1552】[Cerc2007]robotic sort Splay
[BZOJ1552][Cerc2007]robotic sort Description Input 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000.第二行为N ...
- php实现断点下载
HTTP断点续传原理 Http头 Range.Content-Range() HTTP头中一般断点下载时才用到Range和Content-Range实体头, Range用户请求头中,指定第一个字节的位 ...
- RAC时间同步的两种方法
集群时间同步服务在集群中的两个 Oracle RAC 节点上执行以下集群时间同步服务配置.Oracle Clusterware 11g 第 2 版及更高版本要求在部署了 Oracle RAC 的集群的 ...
- jQuery的each函数
http://www.cnblogs.com/xiaojinhe2/archive/2011/10/12/2208740.html http://www.cnblogs.com/mabelstyle/ ...
- Java 字符终端上获取输入三种方式
http://blog.csdn.net/hongweigg/article/details/14448731 在Java 字符终端上获取输入有三种方式: 1.java.lang.System.in ...
- C# winform项目中ListView控件使用CheckBoxes属性实现单选功能
C# winform项目中ListView控件使用CheckBoxes属性实现单选功能 在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes ...
- AngularJS的五个超酷特性
AngularJS是一个超棒的javascript框架,不单单对于开发人员来说非常有吸引力,对于UI设计师来说也同样出色.在这篇教程中,我们将简单的介绍AngularJS几个重量级必备特性,并且介绍它 ...
- Qt Quick编程(1)——QML的核心部分ECMAScript
说道QML,不得不先说一下ECMAScript: ECMAScript语言的标准是由Netscape.Sun.微软.Borland等公司基于JavaScript和JScript锤炼.定义出来的. EC ...
- 一篇完整的FlexBox布局指南
一篇完整的FlexBox布局指南 转载请标注本文链接并附带以下信息: 译:Cydiacen 作者:CHRIS COYIER 原文:A Complete Guide to Flexbox 原文更新于 2 ...
- [html5] 学习笔记-Canvas标签的使用
Canvas通过JavaScript来绘制2D图形.Canvas是逐像素渲染的.在Canvas中,一旦图形被绘制完成,它就不会继续得到浏览器的关注.如果其位置发生变化,那么整个场景也需要重新绘制,包括 ...