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过滤危险html代码的函数
Jul 22 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
第4章 数据处理-php数组的处理-郑阿奇
Jul 04 PHP
高性能PHP框架Symfony2经典入门教程
Jul 08 PHP
php调用自己java程序的方法详解
May 13 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
PHP运用foreach神奇的转换数组(实例讲解)
Feb 01 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
Sep 04 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 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中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
2014/04/25 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
python操作列表的函数使用代码详解
2017/12/28 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
三年级科学教学反思
2014/01/29 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
媒体宣传策划方案
2014/05/25 职场文书
公司委托书怎么写
2014/08/02 职场文书
开业典礼致辞
2015/07/29 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL