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 相关文章推荐
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
php实现用户登陆简单实例
Apr 04 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
Aug 01 PHP
PHP实现负载均衡下的session共用功能
Apr 17 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 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
实现树状结构的两种方法
2006/10/09 PHP
支持oicq头像的留言簿(二)
2006/10/09 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
当鼠标移动到图片上时跟随鼠标显示放大的图片效果
2013/06/06 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
python解析xml文件操作实例
2014/10/05 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
C++面试题目
2013/06/25 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
留学自荐信的技巧
2013/10/17 职场文书
精彩的英文自荐信
2014/01/30 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
兴趣班停课通知
2015/04/24 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server
spring boot实现文件上传
2022/08/14 Java/Android