Laravel框架路由和控制器的绑定操作方法


Posted in PHP onJune 12, 2018

本文实例讲述了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下有两个函数,indexshowPost,可以调用。

那么问题来了,究竟应该选用哪种?

你不可能把复杂的业务逻辑都写在一个匿名函数里,所以你要学会新建控制器。

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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中对数据库操作的封装
Oct 09 PHP
php date与gmdate的获取日期的区别
Feb 08 PHP
php注销代码(session注销)
May 31 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
php导入excel文件到mysql数据库的方法
Jan 14 PHP
THINKPHP支持YAML配置文件的设置方法
Mar 17 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
php递归函数怎么用才有效
Feb 24 PHP
详解php中流行的rpc框架
May 29 PHP
php png失真的原因及解决办法
Nov 17 PHP
Laravel框架路由设置与使用示例
Jun 12 #PHP
Laravel框架生命周期与原理分析
Jun 12 #PHP
Laravel框架分页实现方法分析
Jun 12 #PHP
php 可变函数使用小结
Jun 12 #PHP
PHP程序员学习使用Swoole的理由
Jun 24 #PHP
PHP实现的装箱算法示例
Jun 23 #PHP
PHP基于curl模拟post提交json数据示例
Jun 22 #PHP
You might like
php 操作excel文件的方法小结
2009/12/31 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
Jquery ui css framework
2010/06/28 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
jquery map方法使用示例
2014/04/23 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
2015/08/10 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
对python3中pathlib库的Path类的使用详解
2018/10/14 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Python3 读取Word文件方式
2020/02/13 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
《我不是最弱小的》教学反思
2014/02/23 职场文书
个性发展自我评价2015
2015/03/09 职场文书
感恩教师节主题班会
2015/08/12 职场文书