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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
PHP 遍历文件实现代码
May 04 PHP
基于wordpress主题制作的具体实现步骤
May 10 PHP
PHP 解决session死锁的方法
Jun 20 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 PHP
PHP GD库生成图像的几个函数总结
Nov 19 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
帝国CMS留言板回复后发送EMAIL通知客户
Jul 06 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 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读取目录下所有文件的代码
2008/01/07 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
php rsa加密解密使用详解
2015/01/14 PHP
初识laravel5
2015/03/02 PHP
PHP session 会话处理函数
2016/06/06 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
Javascript中的var_dump函数实现代码
2009/09/07 Javascript
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
Python 常用string函数详解
2016/05/30 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
Python中django学习心得
2017/12/06 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
老公爱的承诺书
2014/03/31 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
自我查摆剖析材料
2014/10/11 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
django上传文件的三种方式
2021/04/29 Python
新手必备Python开发环境搭建教程
2021/05/28 Python
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
Java中API的使用方法详情
2022/04/06 Java/Android