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 开发环境配置(测试开发环境)
Apr 28 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
php对称加密算法示例
May 07 PHP
php中$_GET与$_POST过滤sql注入的方法
Nov 03 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
php获取ajax的headers方法与内容实例
Dec 27 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/06/06 PHP
php数组去重实例及分析
2013/11/26 PHP
php单例模式示例分享
2015/02/12 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
vue-loader教程介绍
2017/06/14 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
Windows下PyMongo下载及安装教程
2015/04/27 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
python 实现Harris角点检测算法
2020/12/11 Python
通过css3的filter滤镜改变png图片的颜色的示例代码
2020/05/06 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
高中生自我鉴定范文
2013/10/30 职场文书
物理系毕业生自荐信
2013/11/01 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
英文自荐信范文
2015/03/25 职场文书
学校通报表扬范文
2015/05/04 职场文书
导游词之天津盘山
2019/11/01 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers