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 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
smarty中js的调用方法示例
Oct 27 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
利用PHP生成静态html页面的原理
Sep 30 PHP
Yii核心验证器api详解
Nov 23 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
php输出文字乱码的解决方法
Oct 04 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
PHP的栏目导航程序
2006/10/09 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP基本语法实例总结
2016/09/09 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
js获取图片大小的函数代码
2011/09/20 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
JQuery移动页面开发之屏幕方向改变与滚屏的实现
2015/12/03 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
微信小程序 JS动态修改样式的实现方法
2018/12/16 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
Python自动登录126邮箱的方法
2015/07/10 Python
Python实现k-means算法
2018/02/23 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
Python 实现数组相减示例
2019/12/27 Python
Python sorted排序方法如何实现
2020/03/31 Python
如何在django中运行scrapy框架
2020/04/22 Python
Python实现微信表情包炸群功能
2021/01/28 Python
HTML5 本地存储之如果没有数据库究竟会怎样
2013/04/25 HTML / CSS
波兰购物网站:MALL.PL
2019/05/01 全球购物
工厂仓管员岗位职责
2014/01/01 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
学习教师法的心得体会
2014/09/03 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
如何写通讯稿
2015/07/22 职场文书