- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 展示和添加篮球队信息--laravel与elementplus
el-menu-item index="/NbaBasketball/Players/Index">球员球队
2024-11-28 15:14:58 922
原创 写个添加球队和展示球队的功能--laravel与inertia
先展示下最终效果,如下是展示球队的界面 如下是添加球队的界面 界面样式没怎么调整,不要在意这些细节。先说说操作流程 首先需要登录,没注册就注册一个账号。登录界面就不展示了。然后选中”NbaBasketballTeams“这个选项,就进入了展示球队的界面。然后点击左上角“添加球队”链接,就进入到添加球队的界面。然后输入名字和上传一张logo,点击“提交”按钮就完成球队的新增,这时候会自动回到展示球队的界面展示出新增的球队。
2024-11-26 16:41:22 1138
原创 资源控制器--laravel进阶篇
这个链接中photos后面的2可以随便改变,只要是photos表里有的记录都会没问题,对应的是photos表里的id字段。'comment' => 'id',这里的id表示的是comments表里的字段,可以随便改。如上图,当photos后面数字为1时,comments后面数字只能为2或者3才能正常显示,为1时只会显示404。隐式模型绑定不会检索软删除的模型,可以使用withTrashed方法来检索软删除的模型。声明资源路由时,你可以指定控制器应该处理的动作子集,而不是默认动作的全部集合。
2024-11-22 13:08:34 1154
原创 CSRF保护--laravel进阶篇
laravel对csrf非常重视,专门针对csrf作出了很多的保护。如果您是刚刚接触laravel的路由不久,那么您可能对于web.php路由文件的post请求很疑惑,因为get请求很顺利,而post请求则可能会遭遇失败。其中一个失败的原因是由于laravel的csrf保护引起的。指导 Laravel 来自您的 SPA 的传入请求可以使用 Laravel 的会话 cookie 进行认证。先创建2个路由,get路由负责创建blade模板,post路由就是最终的post请求。在浏览器中展示blade模板。
2024-11-21 14:46:55 780
原创 数据库迁移--laravel进阶篇
本地开发中的数据库和线上发布的数据库是不一样的,每进行一个线上版本的更新,很可能也涉及大量数据库的改动,那么这些数据库的改动在laravel中可以使用数据库迁移来处理。如上图所示,相当方便,然后修改下数据库引擎为InnoDB,增加表注释,再新增name和airline两个字符串的字段,代码如下。这个命令用于创建数据表还行,用在重命名列名就会报错,用在别的地方报错就不用执行这个命令,跳过这个命令执行下一个命令就好。最后将未完成的迁移执行,这样数据库操作才最终在数据库中产生效果,执行以下命令。
2024-11-20 16:33:00 1013
原创 中间件--laravel进阶篇
接下来我们为EnsureUserIsSubscribed中间件也添加打印,这个中间件在之前已经分配了别名为subscribed,所以上图我们使用其别名。我们经常看到有些地方使用auth和verified作为路由中间件或者控制器中间件,其实这些是中间件的别名,属于Laravel 的一些内置中间件,比如auth是在如下图文件下实现的。如上图,打开圈中的app.php文件,再添加箭头所指圈中的2行代码。laravel版本11.31,这中间件只有3种,分别是全局中间件,路由中间件,控制器中间件。
2024-11-19 13:09:09 801
原创 websocket服务器(协程风格)--swoole进阶篇
swoole的websocket服务器(协程风格)示例真不算友善,从头了解到尾,那还好,但是谁有那么多时间从头到尾了解。示例不够针对性,写websocket就该单独写websocket的东西,偏偏又加上http的东西。这里我来解读一下websocket服务器(协程风格)示例。如果连接路由为/websocket,则处理websocket事件。如果连接路由为/,则处理http事件。首先这句代码意思是创建http服务器,然后注意看下面2句,按照不同的路由来分别处理。这是websocket服务器(协程风格)示例。
2024-11-11 17:25:49 654
原创 浏览器端直播推流实现——系统篇
万一卡死,按照端口查找PID,比如lsof -t -i :9502,然后杀死进程,比如kill -9 8953。这里设置5秒发送一次音视频数据到服务器,设置秒数太大,服务器那边一次不能接收太多数据,设置秒数太小,就要注意网络本身和服务器承受的压力。
2024-11-08 16:26:04 884
原创 swoole扩展安装--入门篇
如上图,我安装3次了,为何会这样?安装过后,我就重载配置。通过安装扩展,就是第一张图那里看不到安装成功,同时在phpinfo那里也看不到swoole扩展。安装swoole扩展首先想到的是用宝塔来安装,毕竟安装方便,还能统一管理。这是我第3次写swoole扩展安装,这次基于opencloudos8系统,php使用8.2。就是想安装上图圈出来的Swoole5,没想到却踩坑安装不了,消息列表显示安装成功,如下图。有个奇怪的显示如下图,我明明安装了swoole5,结果显示swoole4也被安装了。
2024-11-06 20:53:57 735
原创 小系统bug修复与功能增强--系统篇
打包就在项目中执行npm run build,生成dist文件夹,复制dist文件夹放到thinkphp8的public文件夹里面,这里我在public文件夹下新增一个admin文件夹,然后再把dist文件夹放到admin文件夹中,想法是项目应该是可以支持多个单文件组件的模式。然后把dist文件夹中的index.html文件剪切到thinkphp8的视图中,想法是前端页面应该可以既用vue3项目写也可以用thinkphp8模板来写,混写。我们继续看看展示图片列表的视图部分,这个展示图片的模块是新增的。
2024-10-22 15:35:25 801
原创 ElementPlus-Table表格-单选--TypeScript进阶篇
然后再看const singleTableRef = ref<InstanceType<typeof ElTable>>()这行,typeof ElTable表明会返回一个叫做ElTable名字的东西的类型,typeof类型运算符是JavaScript在表达式上下文中使用的运算符。ref="singleTableRef">组件类型的参数的函数返回的对象的value值不能是null或者undefined,!ref="singleTableRef">组件类型的参数的函数返回的对象。最后我们再看看如下方法。
2024-10-20 12:47:08 1119
原创 后台管理员登录实现--系统篇
createToken方法是生成登录令牌的方法,这里就不展开了,因为我没想好,只是随手实现了一下,getClientIp这个是获取客户端ip的方法,也是没想好怎么写,不展开了,随手实现了一个。既然后端已经支持登录验证,那么前面写的上传图片和删除图片的前端部分也要作出修改,提供相应支持,其实就是增加发送参数token,Upload1.vue文件修改如下。exist.login_exist,这个就是页面开关,为false的时候就显示登录页面,登录成功后可以设置为true,至于差不多居中显示代码如下。
2024-10-18 17:31:27 1260
原创 更新项目vue版本--入门篇
安装过后执行2步,1.ncu(检查最新版本),2.ncu -u(更新到最新版本),然后查看package.json,已更新到最新版本。通过以上命令查看vue版本都显示了更新后的版本,项目运行又没有出错,估计是package.json不会自动更新。不过我查看package.json文件,vue和vite的版本没有更新。出现这个警告跟vue版本有关,于是决定升级vue,执行npm update vue。注意不能单更新vite,vite和vue需要匹配。npm info vue (详细查看vue版本号)
2024-10-17 12:17:20 654
原创 引进Menu菜单与新增验证上传图片功能--系统篇
如果说在一个技术框架中写个上传功能,对于进阶期只能算是初期的修炼,因为上传功能只是一个功能,当您需要写第2个功能时,2个功能会混在一个页面,久而久之,当您需要快速寻回某一个功能时反而变得很艰难,进阶期初期的修炼成果就不大了,不牢固了。引进Menu菜单后,Menu菜单的默认数据我还没处理,先把第一项一级菜单下的第一项二级菜单改名为上传图片,然后设置为初始选中菜单,然后把vue的v型logo删掉,将剩下的上传按钮和提示放到上传图片菜单对应的响应页面中,接下来看看代码。新增验证图片功能,关注如下代码。
2024-10-15 22:56:20 954
原创 展示图片--系统篇
后台效果图是一个PC端的浏览器的展示界面,重点看圈出来的写着Click to upload的按钮,这个按钮就是负责上传图片功能的,点击这个按钮会弹出选择图片的窗口。上传图片的展示类型,picture表示展示用fileList的name和url属性展示,前面后端接口upload返回的name和url就是用来更新这里的name和url的。这里的展示图片指的是前台展示图片,为了配合前台展示图片,还实现了后台上传图片和删除图片,下面先展示下后台效果图和前台效果图,帮助读者建立一个感性的认识。
2024-10-14 11:39:33 1034
原创 点击按钮修改文本--thinkphp8与ElementPlus
status` int(10) DEFAULT NULL COMMENT '-1:''删除'',0:''禁用'',1:''正常'',2:''待审核''',ElementPlus是个UI框架,这里结合thinkphp8,前后端分离写个点击按钮修改文本的例子。点击Primary按钮,下面那行文本就会变化如下。
2024-10-09 11:42:19 1255
原创 更新用户状态和删除用户--thinkphp8与uniapp
content: result.data.msg, // 显示后端返回的错误信息。content: result.data.msg, // 显示后端返回的错误信息。content: result.data.msg, // 显示后端返回的错误信息。`status` int(10) DEFAULT NULL COMMENT '-1:''删除'',0:''禁用'',1:''正常'',2:''待审核''',$status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
2024-10-07 18:03:16 1077
原创 上传并显示图片--thinkphp8与uniapp
其中addHead是添加图片的接口,模型写入数据到数据库有3个方法,分别是save,saveAll和静态方式写入的create。这句,用的是save方法。url: getApp().globalData.server_url+'index/addHead', //仅为示例,非真实的接口地址。content: result.data.msg, // 显示后端返回的错误信息。编写后端接口,thinkphp8用的MVC模式,不过其中V,用的uniapp代替,编写后端接口其实是写控制器和模型。
2024-10-06 15:54:47 1028
原创 H5的上传文件实现--thinkphp8与uniapp
如果要实现全局配置,需要在每个应用的配置下增加一模一样的全局配置。因为上传的文件分为全局和不同应用各自管理会更加多样,也更加符合用户习惯在单渠道操作的习惯,这里的应用对应上渠道,渠道比如h5,抖音小程序,PC端等等。首先在thinkphp8中建立一个h5的应用,再在下面建立控制器文件夹controller,再在controller文件夹下面建立一个Index.php文件。url: getApp().globalData.server_url+'index/upload', //仅为示例,非真实的接口地址。
2024-10-05 13:57:21 839
原创 text组件展示数据--thinkphp8与uniapp
如果细心去看,会发现模型中根本没有find和select方法,父类Model也没有。但是Model有一个__callStatic魔术方法,里面调用了数据库对象,而数据库抽象类BaseQuery是有find和select方法的。之前我想跳过数据库对象去用模型,在thinkphp8是行不通的。$str = $str.'ID:'.$value->id.',名字:'.$value->name.'\n注册时间:'主要介绍text组件,通过css类来调整样式,调整了字体大小,font-size: 46rpx;
2024-10-04 12:19:19 1209
原创 thinkphp8响应,模型获取器、修改器、搜索器--php进阶篇
status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];输出,直接return就是输出Html。最简单的响应输出是直接在路由闭包或者控制器操作方法中返回一个字符串。控制器操作方法响应返回如下,展示下输出一个JSON数据给客户端。dump是个助手函数,浏览器友好的变量输出。//获取全部原始数据。* 定义create_time字段搜索器。调用模型获取器,修改器,搜索器。模型获取器,修改器,搜索器。* 设置name字段修改器。* 定义name字段搜索器。
2024-10-03 13:46:32 1242
原创 thinkphp8初识模型--php进阶篇
按照上面示例修改好配置后,项目是基于自动多应用模式的,在mp_toutiao应用下新建model文件夹,在model文件夹下面新建User.php。在浏览器运行http://mp.toutiao.am8.com/index/testDb,自己去SQLyog查看效果,就不展示了。在浏览器运行http://mp.toutiao.am8.com/index/testDb,在SQLyog查看修改后的数据。在浏览器运行http://mp.toutiao.am8.com/index/testDb后。
2024-10-02 15:47:42 1214
原创 thinkphp8中间件与请求对象--php进阶篇
然后在app下面的mp_toutiao文件夹下面新增route文件夹,在route文件夹里面新建route.php文件,添加如下代码进去,把World中间件类注册为路由中间件,由于没改别名,注意下写法不一样。然后在app下面的mp_toutiao文件夹下面新增middleware.php,可复制app下面的middleware.php文件,粘贴过来,然后把auth注册为mp_toutiao应用的中间件。thinkphp8的中间件分4种,分别是全局中间件、应用中间件、路由中间件、控制器中间件。
2024-10-01 18:15:30 1015
原创 thinkphp8应用模式--php进阶篇
thinkphp8应用模式有2种,一种是单应用模式,一种是多应用模式。多应用模式又分2种,一种是非自动多应用模式,一种是自动多应用模式。到此为止,已经展示完thinkphp8的应用模式了,接下来对自动多应用模式进行进一步配置优化,优化2点内容。找到创建自动多应用模式的网站配置,点击进去,找到server_name这项,在后面添加如下。现在展示自动多应用模式,分别建立admin应用,home应用,mp_toutiao应用。注意看app文件夹下面接的是admin文件夹,在Index.php文件中编写代码如下。
2024-09-30 12:20:57 898
原创 thinkphp8下载--php入门篇
在phpstudy中安装php8是非常简单的,打开phpstudy的软件管理,找到php8.2.9安装。我的操作系统是windows10,首先进入此电脑,右键弹出菜单,再点击属性,进入如下图界面。然后点击圈出来的新建,新建2个环境变量,圈出来的环境变量可供参考,前面的路径估计和我的不一样,但是安装到phpstudy中,后面的路径和我的应该是一样的。这里去下载一个CA证书,继续定位到openssl.cafile,去掉前面的分号,将下载好的CA证书的路径配置给openssl.cafile。
2024-09-29 11:39:56 771
原创 XDebug--php入门篇
配置了xdebug.remote_connect_back打开会忽略掉xdebug.remote_host,不过配置打开xdebug.remote_connect_back在本机以外的客户端调试会不生效,比如你写个app在手机上运行或者写个小程序在手机上运行调试,不能断点拦截的。进行php调试之前,需要先运行php,如果安装了nginx,运行nginx也会运行了php。XDebug属于php的一个扩展模块,在安装XDebug前需要先安装php,安装php这里就推荐一款集成环境--phpstudy。
2024-09-28 10:57:11 782
原创 Apache-NetBeans-23的用法--php入门篇
我安装Apache-NetBeans-23时去掉了java的2个选项,只保留基础IDE,html5/Javascript,php三个选项,这样做的目的是我不需要用java,就没必要安装java相关,这样每次启动netbeans就能少加载点东西,启动得快点。上图是设置代码窗口背景色的界面,从顶部菜单Tools--》Options进入,然后选择圈出来的Fonts&Colors,接下来从上到下圈出来的都是默认选项,看最后一项圈出来的Background,我这里选择改成豆沙绿,RGB数值如图所示。
2024-09-27 13:01:46 921
原创 Apache-NetBeans-23安装--PHP入门篇
点击顶部菜单,选择产品--》硬件和软件(可能需要下滑)--》Java,Java产品和技术(可能需要下滑)--》Java SE(默认是选中这项)--》产品--》Oracle JDK,目前最新是JDK23,很显眼,不用去继续找,再选择Windows,看到Apache-NetBeans-23-bin-windows-x64.exe这项(链接中包含)下载就好。Apache-NetBeans-23是基于JAVA开发的软件。(找到这个链接)下载Apache-NetBeans-23,安装过程中选择前面安装的JDK即可。
2024-09-26 12:51:30 425
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人