fastadmin_php專項

1.時間的判斷,還有就是在php這邊如何去拿前端html元素上面的值

input('$row.borrowtime');

      // 創建兩個 DateTime 對象$row_expecttime = new \DateTime(input('$row.borrowtime'));$par_expecttime = new \DateTime( $params['expecttime']);
//        // 計算兩個日期之間的差異
//        $diff = $par_expecttime->diff($row_expecttime);// 計算總的天數差異$totalDays = $par_expecttime->diff($row_expecttime);if ($totalDays->invert == 0){$this->error('續借時間不能小于原歸還時間');}if ($totalDays->m >= 7){$this->error('借閱總時間最多不能超過7個月');}

2.批量存儲數據的2中方法

2.1第一種數據量不大的話,就直接分別放到數組,然后一起sevaAll()一起存了算了

        $books_ids = explode(',', $params['books_id']);if(count($books_ids)>3){$this->error('一次最多不超過3本圖書');}//        print_r($params);$result = false;Db::startTrans();try {//是否采用模型驗證if ($this->modelValidate) {$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;$this->model->validateFailException()->validate($validate);}if(count($books_ids)>1){$seva_data = [];foreach ($books_ids as $key => $value) {$params['books_id'] = $value;$params['bookstatus']= Db::name('books')->where('id','=',$value)->value('status');
//                print_r($params);$seva_data[] = $params;}
//                print_r($seva_data);$result = $this->model->allowField(true)->saveAll($seva_data);if (!$result){throw new \Exception('圖書'.$params['books_id'].'狀態更新失敗');}Db::commit();}else{$params['bookstatus']= Db::name('books')->where('id','=',$params['books_id'])->value('status');
//                print_r($params);$result = $this->model->allowField(true)->save($params);if (!$result){
//                    $res = Books::where('id','=',$params['books_id'])->where('status',1)->update(['status'=>2]);
//                    if (!$res){throw new \Exception('圖書'.$params['books_id'].'狀態更新失敗');
//                    }}Db::commit();}} catch (ValidateException|PDOException|Exception $e) {Db::rollback();$this->error($e->getMessage());}if ($result === false) {$this->error(__('No rows were inserted'));}$this->success();

2.2如果數據量大的話,那么就選擇用foreach循環一條一條的存,但是會有個問題就是model要放到循環里面去

        $books_ids = explode(',', $params['books_id']);if(count($books_ids)>3){$this->error('一次最多不超過3本圖書');}$diff = strtotime($params['expecttime']) - strtotime($params['borrowtime']);if($diff > 180*24*3600){$this->error('借書時間不能超過180天');}else if($diff < 24*3600){$this->error('借書時間不能少于1天');}$result = false;Db::startTrans();try {//是否采用模型驗證if ($this->modelValidate) {$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;$this->model->validateFailException()->validate($validate);}if(count($books_ids)>1){foreach ($books_ids as $key => $value) {$dt = $params;$dt['books_id'] = $value;$model = new \app\admin\model\read\Borrow;$result = $model->allowField(true)->save($dt);if ($result){$res = Books::where('id','=',$dt['books_id'])->where('status',1)->update(['status'=>2]);if (!$res){throw new \Exception('圖書'.$dt['books_id'].'狀態更新失敗');}}}}else{$result = $this->model->allowField(true)->save($params);if ($result){$res = Books::where('id','=',$params['books_id'])->where('status',1)->update(['status'=>2]);if (!$res){throw new \Exception('圖書'.$params['books_id'].'狀態更新失敗');}}}Db::commit();} catch (ValidateException|PDOException|Exception $e) {Db::rollback();$this->error($e->getMessage());}if ($result === false) {$this->error(__('No rows were inserted'));}$this->success();

3.數據庫的關聯查詢

        $oldData = $this->model->with('books')->where('books_id' ,'in',$books_ids)->where('subscription.status','=','1')->select();//        $jsonData = json_encode($oldData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);  // 格式化 JSON 輸出
//        print_r($jsonData);if ($oldData){$titles = array_map(function ($item){return $item['books']['name'];},$oldData);$this->error('已經在預約中不能重復預約:'.implode(",",$titles));}

4.用fastadmin自帶的郵件系統發郵件

4.1進入到api里面可以自己,自定義一個api

4.2具體郵件類的封裝是在下圖的目錄下,可以自己去找然后看里面的注釋

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88362.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88362.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88362.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何在MySQL中選擇使用InnoDB還是MyISAM引擎?

在 MySQL 中選擇 InnoDB 還是 MyISAM 存儲引擎時&#xff0c;需根據應用場景的需求權衡功能、性能和數據完整性。以下是具體的選擇指南&#xff1a; 1. 優先考慮事務和外鍵需求必須使用 InnoDB&#xff1a; 若應用需要 事務支持&#xff08;如金融轉賬、訂單處理&#xff09;或…

邀請函 | 知從科技邀您共赴2025 RISC-V 中國峰會

第五屆RISC-V中國峰會將于2025年7月16至19日在上海張江科學會堂隆重舉辦&#xff0c;本屆峰會由上海開放處理器產業創新中心&#xff08;SOPIC&#xff09;主辦&#xff0c;RISC-V國際開源實驗室&#xff08;RIOS實驗室&#xff09;和上海張江高科技園區開發股份有限公司聯合主…

企業數字化轉型規劃和建設方案(管理架構、應用架構、技術架構)PPT

一、戰略定位與核心目標以 “技術賦能業務&#xff0c;數據驅動創新” 為核心思路&#xff0c;構建 “三步走” 戰略演進路徑&#xff0c;實現 IT 從 “基礎支撐” 到 “戰略引擎” 的升級&#xff1a;IT1.0&#xff08;1-2 年&#xff09;&#xff1a;夯實基礎能力定位 “穩健…

基于Uniapp+MySQL+PHP的景區多商戶小程序源碼系統 帶完整的搭建指南

溫馨提示&#xff1a;文末有資源獲取方式該系統采用 PHP MySQL 的經典開發組合。PHP 作為一種廣泛使用的開源腳本語言&#xff0c;具有簡單易學、運行速度快、跨平臺性強等優點&#xff0c;能夠快速開發出功能強大的 Web 應用程序。MySQL 則是一款穩定可靠的關系型數據庫管理系…

阿里云和騰訊云RocketMQ 發消息和消費消息客戶端JAVA接口

一、RocketMQ 概述RocketMQ 是阿里巴巴開源的一款分布式消息中間件&#xff0c;后捐贈給 Apache 基金會成為頂級項目。它具有低延遲、高并發、高可用、高可靠等特點&#xff0c;廣泛應用于訂單交易、消息推送、流計算、日志收集等場景。核心特點分布式架構&#xff1a;支持集群…

Vue響應式原理六:Vue3響應式原理

1. 多個對象響應式當前存在的問題&#xff1a;當前實現僅針對某個固定對象&#xff08;obj&#xff09;進行依賴收集&#xff0c;實際開發中需要處理多個不同對象將對象響應式處理邏輯抽取為通用函數&#xff0c;支持任意對象代碼如下&#xff1a; // 方案一&#xff1a;Obje…

【算法筆記 day three】滑動窗口(其他類型)

hello大家好&#xff01;這份筆記包含的題目類型主要包括求子數組已經一些比較‘小眾’的題目。和之前一樣&#xff0c;筆記中的代碼和思路要么是我手搓要么是我借鑒一些大佬的想法轉化成自己的話復現。所以方法不一定是最好的&#xff0c;但一定是經過我理解的產物&#xff0c…

docker-鏡像管理指南

在本節中&#xff0c;我們將詳細介紹 Docker 鏡像的常用命令&#xff0c;幫助您更好地管理和操作鏡像。以下是核心命令及其功能說明&#xff1a;1.使用"ls"查看鏡像列表#查看現有的鏡像列表[rootdocker01 ~]# docker images [rootdocker01 ~]# docker image ls#僅查看…

Mac 電腦無法讀取硬盤的解決方案

引言近年來&#xff0c;選擇使用 Mac 電腦的用戶越來越多&#xff0c;尤其是在設計、開發、剪輯、文檔處理等領域&#xff0c;macOS 憑借其優秀的系統生態與硬件體驗吸引了大量擁躉。與此同時&#xff0c;對于攝影師、剪輯師、程序員、學生等用戶來說&#xff0c;一塊移動硬盤往…

25春期末考

web 瘋狂星期四 先來看一下源碼 分析代碼的黑名單后得知 我們可以用的字符就只剩下 字母a-z(大小寫均可) 數字2 空格 這里的限制太多了 這里比較常用的getallheaders被ban掉了 這里就是用session來做 session_start()開啟session session_id()獲取session 這里我們要構造一…

時間顯示 藍橋云課Java

目錄 題目鏈接 題目 解題思路 代碼 題目鏈接 競賽中心 - 藍橋云課 題目 解題思路 通過%天數,得到一天內的時間,然后/小時單位(換算成毫秒的)得到小時,然后總數減去該小時,得到分鐘數,秒數同理 代碼 import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不…

STM32F1控制步進電機

一、基礎知識1. 步進電機控制方式脈沖方向控制&#xff08;最常見&#xff09;控制信號&#xff1a;DIR方向&#xff1a;高低電平決定正轉或反轉&#xff1b;STEP脈沖&#xff1a;每個脈沖電機前進一步&#xff08;可通過端口拉高拉低來模擬脈沖&#xff0c;或使用pwm來生成脈沖…

Docker 容器部署腳本

#!/bin/bash# # Author: ldj # Date: 2025-07-08 15:37:11 # Description: 首先刪除舊的容器和鏡像&#xff0c;然后登錄到 Harbor 并拉取最新的鏡像進行部署 # # 顯示每條命令執行情況&#xff0c;便于調試 set -x harbor_addr$1 harbor_repo$2 project_name$3 version$4 po…

OpenCV 4.10.0 移植 - Android

前文: Ubuntu 編譯 OpenCV SDK for Android Linux OpenCV 4.10.0 移植 概述 在移動應用開發領域&#xff0c;Android平臺與OpenCV庫的結合為開發者提供了強大的圖像處理和計算機視覺能力。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件…

go go go 出發咯 - go web開發入門系列(二) Gin 框架實戰指南

go go go 出發咯 - go web開發入門系列&#xff08;二&#xff09; Gin 框架實戰指南 往期回顧 go go go 出發咯 - go web開發入門系列&#xff08;一&#xff09; helloworld 前言 前一節我們使用了go語言簡單的通過net/http搭建了go web服務&#xff0c;但是僅使用 Go 的標…

編譯OpenHarmony-4.0-Release RK3566 報錯

編譯OpenHarmony-4.0-Release RK3566 報錯1. 報錯問題2.問題解決3.解決方案4.?調試技巧?subsystem name config incorrect in ‘/home/openharmony/OpenHarmony/vendor/kaihong/khdvk_356b/bundle.json’, build file subsystem name is kaihong_products,configured subsy1.…

【PTA數據結構 | C語言版】線性表循環右移

本專欄持續輸出數據結構題目集&#xff0c;歡迎訂閱。 文章目錄題目代碼題目 給定順序表 A(a1?,a2?,?,an?)&#xff0c;請設計一個時間和空間上盡可能高效的算法將該線性表循環右移指定的 m 位。例如&#xff0c;(1,2,5,7,3,4,6,8) 循環右移 3 位&#xff08;m3) 后的結果…

c++-內部類

概念如果一個類定義在另一個類的內部&#xff0c;這個內部類就叫做內部類。內部類是一個獨立的類&#xff0c; 它不屬于外部類。特性1.不能通過外部類的對象去訪問內部類的成員。外部類對內部類沒有任何優越的訪問權限。 2.內部類就是外部類的友元類&#xff0c;參見友元類的定…

.golangci.yml文件配置

version: “2” run: timeout: 5m concurrency: 10 modules-download-mode: readonly linters: default: standard enable: - revive - cyclop settings: staticcheck: initialisms: [ “ACL”, “API”, “ASCII”, “CPU”, “CSS”, “DNS”, “EOF”, “GUID”, “HTML”, …

YOLO模型魔改指南:從原理到實戰,替換Backbone、Neck和Head(戰損版)

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名熱愛AI技術的GIS開發者。本系列是作者參加DataWhale 2025年6月份Yolo原理組隊學習的技術筆記文檔&#xff0c;這里整理為博客&#xff0c;希望能幫助Yolo的開發者少走彎路&#xff01; &am…