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 相关文章推荐
无JS,完全php面向过程数据分页实现代码
Aug 27 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
php使用codebase生成随机数
Mar 25 PHP
php实现图片局部打马赛克的方法
Feb 11 PHP
两种php实现图片上传的方法
Jan 22 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP strripos函数用法总结
Feb 11 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 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
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JQuery UI皮肤定制
2009/07/27 Javascript
js获取select标签的值且兼容IE与firefox
2013/12/30 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
node.js缺少mysql模块运行报错的解决方法
2016/11/13 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
vue新vue-cli3环境配置和模拟json数据的实例
2018/09/19 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
[56:14]Fnatic vs OG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python一键升级所有pip package的方法
2017/01/16 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
python中的global关键字的使用方法
2019/08/20 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
行政管理人员精品工作推荐信
2013/11/04 职场文书
企划经理的岗位职责
2013/11/17 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
离婚协议书格式
2015/01/26 职场文书
签证工作证明模板
2015/06/15 职场文书