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 相关文章推荐
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
Feb 16 PHP
分享一下贝贝成长进度的php代码
Sep 14 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
详解PHP中的Traits
Jul 29 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
PHP中rename()函数的妙用讲解
Feb 28 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 PHP
Laravel 修改验证异常的响应格式实例代码详解
May 25 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 命令行参数详解及应用
2011/05/18 PHP
使用php实现截取指定长度
2013/08/06 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
分享php分页的功能模块
2015/06/16 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
JavaScript中的私有成员
2006/09/18 Javascript
js精度溢出解决方案
2012/12/02 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
python设置windows桌面壁纸的实现代码
2013/01/28 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
在Django中限制已登录用户的访问的方法
2015/07/23 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
python 读取、写入txt文件的示例
2020/09/27 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
详解Html5 Canvas画线有毛边解决方法
2018/03/01 HTML / CSS
企业精细化管理实施方案
2014/03/23 职场文书
群众路线教育实践活动学习心得体会
2014/10/30 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
数据库连接池
2021/04/06 MySQL
常用的Python代码调试工具总结
2021/06/23 Python