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 相关文章推荐
7个超级实用的PHP代码片段
Jul 11 PHP
PHP数据类型之整数类型、浮点数的介绍
Apr 28 PHP
基于php 随机数的深入理解
Jun 05 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
Jun 08 PHP
JS异常处理try..catch语句的作用和实例
May 05 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
PHP多线程类及用法实例
Dec 03 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
详解Laravel5.6 Passport实现Api接口认证
Jul 27 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
PHP getName()函数讲解
2019/02/03 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
javascript实现二分查找法实现代码
2007/11/12 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
Python 学习笔记
2008/12/27 Python
Python中url标签使用知识点总结
2020/01/16 Python
python为什么会环境变量设置不成功
2020/06/23 Python
解决Python安装cryptography报错问题
2020/09/03 Python
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
毕业生自荐书模版
2014/01/04 职场文书
财政专业求职信范文
2014/02/19 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android