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_Flame(Version:Progress)的原代码
Oct 09 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 PHP
PHP中的函数嵌套层数限制分析
Jun 13 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
初识laravel5
Mar 02 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
php中switch语句用法详解
Aug 17 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
form表单传递数组数据、php脚本接收的实例
Feb 09 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脚本的10个技巧(3)
2006/10/09 PHP
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
浅谈PHP封装CURL
2019/03/06 PHP
php数组遍历类与用法示例
2019/05/24 PHP
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
讲解Python中运算符使用时的优先级
2015/05/14 Python
Python文件和流(实例讲解)
2017/09/12 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
python3.6数独问题的解决
2019/01/21 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
python修改FTP服务器上的文件名
2019/09/11 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
strstr()的简单实现
2013/09/26 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
增员口号大全
2014/06/18 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
临时用工协议书范本
2014/10/29 职场文书
撤诉申请怎么写
2015/05/19 职场文书
公司费用报销管理制度
2015/08/04 职场文书
Python如何使用循环结构和分支结构
2022/04/13 Python