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 if 想到的些问题
Mar 22 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
第二章 PHP入门基础之php代码写法
Dec 30 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
destoon官方标签大全
Jun 20 PHP
php删除左端与右端空格的方法
Nov 29 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
php文件上传的两种实现方法
Apr 04 PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 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编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
vue.js的提示组件
2017/03/02 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python代码实现ID3决策树算法
2017/12/20 Python
Python3多线程基础知识点
2019/02/19 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
HTML5 weui使用笔记
2019/11/21 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
秘书岗位职责
2013/11/18 职场文书
卖房授权委托书样本
2014/10/05 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
员工旷工检讨书
2015/08/15 职场文书
交通安全学习心得体会
2016/01/18 职场文书
《七月的天山》教学反思
2016/02/19 职场文书