首页
关于叶子
Search
1
Win10突然出现不能连接共享打印机一例
310,274 阅读
2
[经验存档] 微星(MSI)B150M-Pro-VD Plus安装系统蓝屏一例
181,748 阅读
3
Laravel“高并发”导致数据“统计”异常一例
71,312 阅读
4
[iOS|Xcode]iOS-App自定义启动页制作(uniapp适用)
52,074 阅读
5
[Windows]查看连接过的WIFI密码
47,978 阅读
代码
分享
琐事
MySQL
数码
前端
MacOS
软件
Windows
PHP
GoLang学习
登录
Search
标签搜索
Laravel
PHP
Windows
Laravel-Admin
Vue
uniapp
CSS
前端
chartjs
HTML
微信
小程序
web
MacOS
App
iOS
工具
Golang
微服务
高并发
Yesr00
累计撰写
64
篇文章
累计收到
7
条评论
首页
栏目
代码
分享
琐事
MySQL
数码
前端
MacOS
软件
Windows
PHP
GoLang学习
页面
关于叶子
搜索到
64
篇与
的结果
2025-02-06
DcatAdmin 中 $form->saving() 与 $form->saved() 的区别及实战示例
核心区别方法触发时机可修改表单值数据持久化状态$form->saving()表单提交后,数据保存到数据库前触发✔️ 生效尚未保存到数据库$form->saved()表单数据成功保存到数据库后触发❌ 需手动处理已生成完整模型数据使用场景对比1. $form->saving() - 保存前干预典型场景:修改即将存储的原始数据 特点:直接修改表单输入值,最终会随表单提交保存到数据库$form->saving(function (Form $form) { // 直接修改表单字段值(生效) $form->input('price', $form->input('price') * 0.8); // 自动打8折 // 或通过模型属性修改(需模型已实例化) if ($form->model()->exists) { $form->model()->slug = Str::slug($form->title); } });2. $form->saved() - 保存后处理典型场景:基于已存储数据的后续操作 注意:此时修改模型数据需手动保存,且要避免无限循环$form->saved(function (Form $form) { // 获取已保存的模型实例 $model = $form->model(); // 修改数据需显式保存 $model->update_count += 1; $model->save(); // 必须手动调用 // 典型场景:关联操作/异步任务 Log::info('数据更新', $model->toArray()); dispatch(new SendUpdateNotification($model)); });常见问题示例Q:为什么在 saved() 中修改数据无效?错误示范:$form->saved(function (Form $form) { $form->model()->price = 100; // 未调用 save() });修正方案:$form->saved(function (Form $form) { $model = $form->model(); $model->price = 100; $model->save(); // 必须显式保存 });最佳实践建议数据预处理优先使用 saving()字段格式化自动生成 slug计算衍生字段值后置操作使用 saved()写入操作日志清理缓存触发异步任务避免循环触发 在 saved() 中保存模型时添加条件判断:$form->saved(function (Form $form) { if ($form->model()->isDirty()) { // 检查是否有修改 $form->model()->save(); } });通过合理运用这两个回调,可以实现表单数据处理的全生命周期管理。关键要牢记:saving 管存前加工,saved 管存后跟进。
2025年02月06日
4,639 阅读
0 评论
0 点赞
2025-01-07
【CSS系统化学习】- 基础部分
# CSS基础入门:样式引入与核心概念---## 一、CSS的三种引入方式### 1. 内联样式 **适用场景**:快速调试单个元素的样式 **语法**:直接在HTML标签中使用`style`属性 **示例**: ```html内联样式示例文本``` **缺点**:难以维护,无法复用样式规则。---### 2. 内部样式表 **适用场景**:单页面样式管理 **语法**:在HTML文件的``标签内添加``块 **示例**: ```html body { background-color: #f0f0f0; } h1 { color: blue; text-align: center; } 内部样式表示例标题 ``` **优点**:页面级样式隔离,避免污染全局样式。---### 3. 外部样式表 **适用场景**:多页面共享样式 **语法**:通过``标签引入独立的`.css`文件 **示例**: **styles.css**: ```css .container { max-width: 1200px; margin: 0 auto; } ``` **index.html**: ```html 内容区域 ``` **优势**: - 代码复用性强 - 便于团队协作 - 浏览器缓存优化性能---## 二、样式优先级规则 | 引入方式 | 优先级 | 作用范围 | |----------------|--------|----------| | 内联样式 | 最高 | 单个元素 | | 内部样式表 | 中 | 当前页面 | | 外部样式表 | 低 | 全局 |**冲突解决**: 当多个样式规则冲突时,优先级遵循: `!important > 内联样式 > ID选择器 > 类选择器 > 元素选择器`---## 三、最佳实践建议 1. **开发环境**:使用外部样式表便于维护 2. **生产环境**:压缩CSS文件(如`styles.min.css`) 3. **调试技巧**:通过浏览器开发者工具实时修改样式
2025年01月07日
5,632 阅读
0 评论
0 点赞
2025-01-07
【CSS系统化学习】- 大纲
最近失业,苦于之前的所有码农知识都是根据各种教程自学而来的,打算系统化学习一下。CSS 学习大纲基础部分1. 引入CSS 内联样式 内部样式表 外部样式表 2. CSS选择器 元素选择器 类选择器 ID选择器 属性选择器 伪类选择器 伪元素选择器 3. 盒模型 边框(border) 填充(padding) 边距(margin) 4. 文本属性 字体系列(font-family) 字体大小(font-size) 字体粗细(font-weight) 文字颜色(color) 行高(line-height) 文本对齐方式(text-align) 文本装饰(text-decoration) 文本转换(text-transform) 5. 背景 背景颜色(background-color) 背景图片(background-image) 背景重复(background-repeat) 背景位置(background-position) 背景附着(background-attachment) 中级部分6. 定位 浮动(float) 清除浮动(clear) 定位模式(position) 静态定位(static) 相对定位(relative) 绝对定位(absolute) 固定定位(fixed) z-index 7. Flexbox布局 显示Flex容器(display: flex;) 主轴方向(flex-direction) 换行(flex-wrap) 对齐项目(justify-content, align-items, align-self) 8. Grid布局 创建Grid容器(display: grid;) 列模板(grid-template-columns) 行模板(grid-template-rows) 区域模板(grid-template-areas) 自动填充(auto-fill) 自动适应(auto-fit) 网格间距(gap) 9. 过渡与动画 过渡效果(transition) 关键帧动画(@keyframes) 动画属性(animation) 10. 响应式设计 媒体查询(media queries) 视口单位(vw, vh, vmin, vmax) 图片响应式(max-width: 100%; height: auto;) 高级部分11. 变量 CSS变量(--variable-name) 12. 样式继承 了解哪些属性会继承 13. 特殊选择器 后代选择器 子选择器(>) 相邻兄弟选择器(+) 通用兄弟选择器(~) 14. 高级布局技术 多列布局(column-count, column-gap) 形状外边距(shape-outside) 分区布局(container-type, container-name) 15. 性能优化 减少重绘和回流 使用合适的单位 最小化样式的使用
2025年01月07日
7,014 阅读
0 评论
0 点赞
2025-01-07
Dcat-Admin 2.x表单使用select和input进行表单联动一例
前言这个场景是最近在写一个兼职项目的时候用到的一个场景。但是由于select数量太多使用when的话不太合适当前场景。而用自带的load或者loads无法实现正常的赋值,改了各种接口格式不是undefined就是报错。在不想改源码的情况下,使用了当前方法。使用代码示例-以widget form为例$this->select('user_no','用户编号')->options(User::query()->pluck('user_no','id'))->script( " $('select[name=\"station_no\"]').on('change',function(e){ var station_no = $(this).val(); $.ajax({ url:'/admin/name_by_no', method:'GET', data:{q:station_no}, success:(res)=>{ console.log('success',res); $('input[name=\"name\"]').val(res.text); }, fail:(err)=>{ console.log('err',err); } }); })" ); $this->text('name','姓名')->readonly(true); 总结通过上述方法,实现了在选中select选项后对text进行赋值的一个演示。
2025年01月07日
4,436 阅读
0 评论
0 点赞
2024-11-15
Laravel 中的 `response()` 方法详解
在 Laravel 框架中,response() 方法是用于生成 HTTP 响应的核心方法之一。通过 response() 方法,开发者可以灵活地返回各种类型的数据,包括 JSON、XML、HTML、文件下载等。本文将详细介绍 response() 方法的使用方法和常见应用场景,并提供示例代码。1. 基本用法response() 方法的基本用法非常简单,可以直接返回一个字符串作为响应内容。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/basic-response', function () { return response('Hello, World!'); }); 2. 返回 JSON 响应在 RESTful API 开发中,返回 JSON 响应是最常见的需求之一。response()->json() 方法可以方便地将数组或对象转换为 JSON 格式的响应。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/json-response', function () { $data = [ [ "id" => 2, "text" => "二次冷熱壓" ], [ "id" => 3, "text" => "一次射出" ] ]; return response()->json($data, 200, [], JSON_UNESCAPED_UNICODE); }); 3. 返回 XML 响应有时需要返回 XML 格式的数据,可以使用 response() 方法生成 XML 响应。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/xml-response', function () { $data = [ [ "id" => 2, "text" => "二次冷熱壓" ], [ "id" => 3, "text" => "一次射出" ] ]; $xml = new \SimpleXMLElement('<root/>'); array_walk_recursive($data, function($value, $key) use ($xml) { $xml->addChild($key, $value); }); return response($xml->asXML(), 200, ['Content-Type' => 'application/xml']); }); 4. 返回 CSV 响应在需要导出数据为 CSV 文件时,可以使用 response()->stream() 方法生成 CSV 响应。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/csv-response', function () { $data = [ ["id", "text"], [2, "二次冷熱壓"], [3, "一次射出"] ]; $headers = [ 'Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename="data.csv"', ]; $callback = function() use ($data) { $FH = fopen('php://output', 'w'); foreach ($data as $row) { fputcsv($FH, $row); } fclose($FH); }; return response()->stream($callback, 200, $headers); }); 5. 返回 HTML 响应在需要动态生成 HTML 内容时,可以使用 response() 方法返回 HTML 响应。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/html-response', function () { $data = "<h1>欢迎来到 HTML 响应示例</h1><p>这是一个动态生成的 HTML 内容。</p>"; return response($data, 200, ['Content-Type' => 'text/html']); }); 6. 返回文件下载在需要提供文件下载时,可以使用 response()->download() 方法生成文件下载响应。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/file-download', function () { $pathToFile = storage_path('app/public/example.pdf'); return response()->download($pathToFile, 'example.pdf'); }); 7. 自定义 HTTP 状态码和头信息有时需要返回特定的 HTTP 状态码和头信息,可以使用 response() 方法的参数来实现。use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::get('/custom-response', function () { $data = [ "message" => "这是一个自定义响应", "status" => "success" ]; return response()->json($data, 201, [ 'X-Custom-Header' => 'CustomValue' ]); }); 总结response() 方法是 Laravel 中非常强大和灵活的工具,可以帮助开发者生成各种类型的 HTTP 响应。通过本文的介绍,希望你能够更好地理解和使用 response() 方法,提升你的 Laravel 开发技能。参考资料 Laravel 官方文档 - Responses Laravel 官方文档 - Views 如果你有任何问题或需要进一步的帮助,欢迎访问 Yesr.run 获取更多资源和支持。希望这篇文章对你有所帮助!如果有任何反馈或建议,请随时告诉我。
2024年11月15日
4,884 阅读
0 评论
0 点赞
1
2
3
4
...
13