技术标签: php
如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。
composer require topthink/think-multi-app
多应用目录结构如下:
├─app 应用目录
│ ├─index 主应用
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ ├─route 路由目录
│ │ └─ ... 更多类库目录
│ │
│ ├─admin 后台应用
│ │ ├─controller 控制器目录
│ │ │ ├─Index.php 控制器类
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ ├─route 路由目录
│ │ │ ├─route.php 路由定义文件
│ │ └─ ... 更多类库目录
│
├─public WEB目录(对外访问目录)
│ ├─admin.php 后台入口文件
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─config 全局应用配置目录
├─route 路由定义目录
当为多应用时,路由文件变到了对应应用下的route目录了,这个时候如果需要访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/index.php/admin/Index/index
http://域名/public/入口文件/应用目录/控制器类/方法
可以通过新增入口文件,并指定应用目录,可以隐藏URL中应用目录,在public下新增admin.php文件,文件内容如下:
<?php
// [ 应用入口文件 ]
namespace think;
require __DIR__ . '/../vendor/autoload.php';
// 执行HTTP应用并响应
$http = (new App())->http;
// 指定应用目录为admin
$response = $http->name('admin')->run();
$response->send();
$http->end($response);
现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/admin.php/Index/index
http://域名/public/入口文件/控制器类/方法
再在admin应用目录下的route目录添加路由文件
<?php
use think\facade\Route;
Route::get('test', 'Index/index');
现在再访问admin应用Index.php控制器下面的方法,访问路径应该为:
http://localhost/public/admin.php/test
http://域名/public/入口文件/路由表达式
文章浏览阅读1.7k次。页面设置固定宽度,浏览器缩小后背景留白,裁切解决办法:_怎么做到缩小网页窗口时右边会多一个滑块
文章浏览阅读1w次,点赞3次,收藏6次。**第一种方式:**static 块public class MapTest { private static final Map<String, String> myMap = new HashMap<String, String>(); static { myMap.put("张三", "北京"); myMap.put("李四", "上海"); }}最常规的初始化方式。第二种方式:双括号初始化 (匿名内部类)pu_map初始化直接赋值
文章浏览阅读3.4k次,点赞2次,收藏15次。简要概括uvm的phase机制知识点,适用于知识点复习以及梳理_final_phase
文章浏览阅读2.6k次。爬虫刚入门,对赶集网进行一次所有商品大数据的爬取使用了多线程,存到数据库里,目前不知道要爬多久from multiprocessing import Poolfrom channel_extract import channelfrom page_parsing import get_item_info, get_linksdef get_a_mongodb里的数据放到网页
文章浏览阅读634次。[zz]程序员人生之路2011-05-07 13:33转载自 aokikyon最终编辑 aokikyon程序员人生之路(强烈推荐,分析的透彻!),某程序达人的人生感悟,估计没有半个甲子的时_aokikyon
文章浏览阅读118次。本来准备自己写识别的,貌似现在能力不足,直接偷懒用百度的api吧from aip import AipOcr""" 你的 APPID AK SK """APP_ID = 'xxx'API_KEY = 'xxx'SECRET_KEY = 'xxx'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)""" 读取图片 ""...
文章浏览阅读863次。BST BST即为binarysearch tree 二叉搜索树为平衡树的基础,所以很要学习的必要。 BST的结点满足一个基本条件就是:结点k的左子树中所有值小于结点k的值,结点k的右子树的所有值大于结点k的值,显然这是一个递归定义的结构。 这个结构就使得中序遍历出来的序列即是一个升序的序列。一个优秀的二叉搜索树能够在log(n)的时间内进行查找、删除一个元素等。_二叉搜索树无指针
文章浏览阅读3.3k次,点赞2次,收藏7次。DHCP Ubuntu18.04_ubuntu配置dhcp上网
文章浏览阅读1w次,点赞3次,收藏10次。dataframe整体做乘法时,不需要借助其他方法,直接a*b即可>>> import pandas as pd>>> import numpy as np>>> a = pd.DataFrame([1,2,3])>>> b = pd.DataFrame([2,5,3])>>> a*b 00 21 102 9但是,如果想要选取某行或某列做乘法,要使用loc方法,此时则会变成矩阵乘法_dataframe乘法
文章浏览阅读1k次。本章目的普及报错功能函数extractvalue()的用法,演示基于报错的SQL注入基本流程。实验环境攻击机:Pentest-Atk(1)操作系统:Windows10(2)安装的应用软件:Sqlmap、Burpsuite、FireFox浏览器及其插件Hackbar、等(3)登录账号密码:操作系统帐号Administrator,密码Sangfor!7890想机:A-SQLi-Labs(1)操作系统:Centos7(2)安装的应用软件:Apache、MySQL(MariaDB)、PHP:DV_报错注入两种方式
文章浏览阅读8.2k次,点赞4次,收藏19次。侦测模块积木组里的所有的积木都是用来检测场景中某一参数的变化,通过参数变化来为下一步操作提供条件依据。具体分为:1、侦测运动积木组 2、侦测按键积木组 3、侦测基本参数积木组 4、其他积木组一、Scratch侦测运动积木组1、碰到鼠标指针:侦测角色碰到鼠标指针的一瞬间 (下拉三角可选舞台边缘)2、碰到颜色X:侦测角色碰到指定的颜色x1的一瞬间3、颜色x1碰到颜色x2:侦测颜色x1碰到颜色x2的一瞬间4、到鼠标指针的距离:侦测角色到鼠标指针的距离(有多个..._视频侦测scratch游戏源码
文章浏览阅读852次。素数是只能被1与自身整除的数,根据定义,我们可以实现第一种算法。算法一:defisprime(n):if n < 2: returnFalsefor i in range(2,int(math.sqrt(n))+1):if n % i ==0:returnFalsereturn True任意一个合数都可分解为素数因子的乘积,观察素数的分布可以发现:除 2,3 以外的素数必定分布在 6k (k..._if n < 2: return false for i in range (2,n): if n % i == 0: return false els