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版国家代码、缩写查询函数代码
Aug 14 PHP
PHP输出缓存ob系列函数详解
Mar 11 PHP
thinkphp学习笔记之多表查询
Jul 28 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
微信公众平台之快递查询功能用法实例
Apr 14 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 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获取MSN好友列表类的实现代码
2013/06/23 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python语言的12个基础知识点小结
2014/07/10 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
Python数据类型详解(一)字符串
2016/05/08 Python
TensorFlow损失函数专题详解
2018/04/26 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
联想德国官网:Lenovo Germany
2018/07/04 全球购物
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
财务经理的岗位职责
2013/12/17 职场文书
119消防日活动总结
2014/08/29 职场文书
典型事迹材料范文
2014/12/29 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers