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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
判断PHP数组是否为空的代码
Sep 08 PHP
php中经典方法实现判断多维数组是否为空
Oct 23 PHP
谈谈关于php的优点与缺点
Apr 11 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
解析PHP工厂模式的好处
Jun 18 PHP
php顺序查找和二分查找示例
Mar 27 PHP
php实现将HTML页面转换成word并且保存的方法
Oct 14 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 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简单创建zip压缩文件的方法
2016/04/30 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
python继承和抽象类的实现方法
2015/01/14 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Atom的python插件和常用插件说明
2018/07/08 Python
python多进程控制学习小结
2018/10/31 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
新领导上任欢迎词
2014/01/13 职场文书
战略合作意向书范本
2014/04/01 职场文书
员工保密承诺书
2014/05/28 职场文书
乡镇2014法制宣传日活动总结
2014/11/01 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android