IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 无涯教程: Laravel 8 - 模型事件 -> 正文阅读

[PHP知识库]无涯教程: Laravel 8 - 模型事件

在这里,我将向您展示laravel 8模型事件。Laravel提供eloquent模型事件列表,每个模型事件都有自己的函数。

  • creating -?插入前调用。
  • creating -?插入后调用。
  • updating -?更新前调用。
  • updated -?更新后调用。
  • deleting -?删除前调用。
  • deleted -?删除后调用。
  • retriveved -?从数据库查询数据时调用。
  • saving -?创建或更新前调用。
  • saved -?创建或更新后调用。
  • restoring -?在恢复前调用。
  • restored -?恢复后调用。
  • replicating -?调用重复数据。

创建Product Model

在这里,我们将使用事件创建Product模型。所以让我们创建并写入以下代码:
app/Models/Product.php

<?php
 
namespace App\Models;
 
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Log;
use Str;
 
class Product extends Model
{
 use HasFactory;
 
 protected $fillable = [
 'name', 'slug', 'detail'
 ];
 
 /**
     * Write code on Method
     *
     * @return response()
     */
 public static function boot() {
 
        parent::boot();
 
 /**
         * Write code on Method
         *
         * @return response()
         */
 static::creating(function($item) { 
 Log::info('Creating event call: '.$item); 
 
            $item->slug = Str::slug($item->name);
 });
 
 /** 
         * Write code on Method
         *
         * @return response()
         */
 static::created(function($item) { 
 /*
                Write Logic Here
            */ 
 
 Log::info('Created event call: '.$item);
 });
 
 /**
         * Write code on Method
         *
         * @return response()
         */
 static::updating(function($item) { 
 Log::info('Updating event call: '.$item); 
 
            $item->slug = Str::slug($item->name);
 });
 
 /**
         * Write code on Method
         *
         * @return response()
         */
 static::updated(function($item) { 
 /*
                Write Logic Here
            */ 
 
 Log::info('Updated event call: '.$item);
 });
 
 /**
         * Write code on Method
         *
         * @return response()
         */
 static::deleted(function($item) { 
 Log::info('Deleted event call: '.$item); 
 });
 }
}


创建记录:Creating和Created事件
app/Http/Controllers/ProductController.php

<?php
 
namespace App\Http\Controllers;
 
use App\Models\Product;
use Illuminate\Http\Request;
 
class ProductController extends Controller
{
 /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
 public function index()
 {
 Product::create([
 'name' => 'silver',
 'detail' => 'This is silver'
 ]);
 
        dd('done');
 }
}

输出日志文件:

[2020-10-20 14:37:26] local.INFO: Creating event call: {"name":"silver","detail":"This is silver"} 
[2020-10-20 14:37:26] local.INFO: Created event call: {"name":"silver","detail":"This is silver","slug":"silver","updated_at":"2020-10-20T14:37:26.000000Z","created_at":"2020-10-20T14:37:26.000000Z","id":5} 

更新记录:Updating和Updated事件
app/Http/Controllers/ProductController.php

<?php
 
namespace App\Http\Controllers;
 
use App\Models\Product;
use Illuminate\Http\Request;
 
class ProductController extends Controller
{
 /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
 public function index()
 {
 Product::find(5)->update([
 'name' => 'silver updated',
 'detail' => 'This is silver'
 ]);
 
        dd('done');
 }
}

输出日志文件:

[2020-10-20 14:39:04] local.INFO: Updating event call: {"id":5,"name":"silver updated","detail":"This is silver","created_at":"2020-10-20T14:37:26.000000Z","updated_at":"2020-10-20T14:37:26.000000Z","slug":"silver"} 
[2020-10-20 14:39:04] local.INFO: Updated event call: {"id":5,"name":"silver updated","detail":"This is silver","created_at":"2020-10-20T14:37:26.000000Z","updated_at":"2020-10-20T14:39:04.000000Z","slug":"silver-updated"} 

删除记录:Deleted事件
app/Http/Controllers/ProductController.php

<?php
 
namespace App\Http\Controllers;
 
use App\Models\Product;
use Illuminate\Http\Request;
 
class ProductController extends Controller
{
 /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
 public function index()
 {
 Product::find(5)->delete();
 
        dd('done');
 }
}

输出日志文件:

https://www.learnfk.com/article-how-to-use-model-events-in-laravel-8example

[2020-10-21 03:14:45] local.INFO: Deleted event call: {"id":5,"name":"silver updated","detail":"This is silver","created_at":"2020-10-20T14:37:26.000000Z","updated_at":"2020-10-20T14:39:04.000000Z","slug":"silver-updated"} 
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:19:19  更:2021-07-10 14:20:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 22:09:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码