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操作MongoDB时的整数问题及对策说明
May 02 PHP
20个PHP常用类库小结
Sep 11 PHP
shopex主机报错误请求解决方案(No such file or directory)
Dec 27 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
PHP自动生成表单代码分享
Jun 19 PHP
php简单的上传类分享
May 15 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
PHP排序算法之冒泡排序(Bubble Sort)实现方法详解
Apr 20 PHP
PHP中PDO事务处理操作示例
May 02 PHP
php实现数组重复数字统计实例
Sep 30 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
jQuery实现延迟跳转的方法
2015/06/05 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
JavaScript驾驭网页-DOM
2016/03/24 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Python Selenium参数配置方法解析
2020/01/19 Python
python3 使用traceback定位异常实例
2020/03/09 Python
Flask-SocketIO服务端安装及使用代码示例
2020/11/26 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
新奇的小玩意:IWOOT
2016/07/21 全球购物
英国足球店:UK Soccer Shop
2017/11/19 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
研修第一天随笔感言
2014/02/15 职场文书
产品包装策划方案
2014/05/18 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
校车安全管理责任书
2015/05/11 职场文书
实习指导老师意见
2015/06/04 职场文书
小学运动会加油稿
2015/07/22 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript