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 相关文章推荐
一个简洁的多级别论坛
Oct 09 PHP
php实现用户在线时间统计详解
Oct 08 PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
PHP进程同步代码实例
Feb 12 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
微信支付开发维权通知实例
Jul 12 PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 PHP
php获取flash尺寸详细数据的方法
Nov 12 PHP
自制PHP框架之设计模式
May 07 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
PHP之header函数详解
Mar 02 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采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
基于angularJS的表单验证指令介绍
2016/10/21 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
JS设计模式之访问者模式定义与用法分析
2018/02/05 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python 加密与解密小结
2018/12/06 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
应届生煤化工求职信
2013/10/21 职场文书
幼儿园园长自我鉴定
2013/10/22 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
最新自我评价范文
2013/11/16 职场文书
年会主持人开场白台词
2015/05/29 职场文书
小学毕业感言200字
2015/07/30 职场文书
详细介绍python类及类的用法
2021/05/31 Python
Java使用jmeter进行压力测试
2021/07/09 Java/Android
Python学习之包与模块详解
2022/03/19 Python
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫