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 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
php实现httpclient类示例
Apr 08 PHP
php实现遍历目录并删除指定文件中指定内容
Jan 21 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
php微信开发之上传临时素材
Jun 24 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
Oct 10 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 PHP
Laravel框架路由设置与使用示例
Jun 12 #PHP
Laravel框架生命周期与原理分析
Jun 12 #PHP
Laravel框架分页实现方法分析
Jun 12 #PHP
php 可变函数使用小结
Jun 12 #PHP
yii2中关于加密解密的那些事儿
Jun 12 #PHP
php中curl和soap方式请求服务超时问题的解决
Jun 11 #PHP
Laravel框架模板继承操作示例
Jun 11 #PHP
You might like
服务器端解压缩zip的脚本
2006/12/22 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
php导出生成word的方法
2015/12/25 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
异步加载script的代码
2011/01/12 Javascript
浏览器常用高宽的jquery插件
2011/02/24 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
js页面加载后执行的几种方式小结
2020/01/30 Javascript
介绍Python的@property装饰器的用法
2015/04/28 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
Python可以实现栈的结构吗
2020/05/27 Python
为什么相对PHP黑python的更少
2020/06/21 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
实验室标语
2014/06/21 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
三方合作意向书范本
2015/05/09 职场文书
单方投资意向书
2015/05/11 职场文书
教师节班会主持词
2015/07/06 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript