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执行速度全攻略(上)
Oct 09 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
php链表用法实例分析
Jul 09 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
PHP与Web页面交互操作实例分析
Jun 02 PHP
php中array_fill函数的实例用法
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
ThinkPHP模版引擎之变量输出详解
2014/12/05 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
brook javascript框架介绍
2011/10/10 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
javascript生成大小写字母
2015/07/03 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
vue3实现v-model原理详解
2019/10/09 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
python爬虫之自制英汉字典
2019/06/24 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
理发店策划方案
2014/06/05 职场文书
售后服务承诺函格式
2015/01/21 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书