第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將參數(shù)傳遞給 laravel elequent 模型的事件觀察者

如何將參數(shù)傳遞給 laravel elequent 模型的事件觀察者

PHP
嗶嗶one 2022-10-22 16:24:36
我在 laravel 中有一個模型,我想在第一次創(chuàng)建模型對象后做一些事情。最簡單的方法是在我的模型類中添加一個靜態(tài)啟動方法,如下面的代碼:class modelName extends Model{      public static function boot()      {         parent::boot();         self::created(function ($model) {             //the model created for the first time and saved             //do something            //code here         });     }}到目前為止,一切都很好!問題是: created 方法接受的唯一參數(shù)是模型對象本身(根據(jù)文檔):這些方法中的每一個都接收模型作為它們唯一的參數(shù)。https://laravel.com/docs/5.5/eloquent#events創(chuàng)建模型后,我需要更多的參數(shù)。我怎樣才能做到這一點(diǎn)?或者在保證模型已經(jīng)創(chuàng)建的同時,還有其他方法可以做某事嗎?laravel 版本是 5.5。
查看完整描述

2 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個贊

你很近。我可能會在您在控制器中實(shí)際創(chuàng)建模型之后立即調(diào)度一個事件。像這樣的東西。


class WhateverController

{

    public function create()

    {

        $model = Whatever::create($request->all());

        $anotherModel = Another::findOrFail($request->another_id);


        if (!$model) {

            // The model was not created.

            return response()->json(null, 500);

        }


        event(new WhateverEvent($model, $anotherModel));

    }

}


查看完整回答
反對 回復(fù) 2022-10-22
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個贊

我在 eloquent 模型類中使用靜態(tài)屬性解決了這個問題:


class modelName extends Model

{

  public static $extraArguments;

  public function __construct(array $attributes = [],$data = [])

  {

     parent::__construct($attributes);

     self::$extraArguments = $data  ; 


  public static function boot()

  {

     parent::boot();


     self::created(function ($model) {

         //the model created for the first time and saved

         //do something

        //code here

         self::$extraArguments; // is available in here

     });

   }

}

有用!但我不知道它是否會導(dǎo)致應(yīng)用程序中的任何其他不當(dāng)行為。


在某些情況下,使用 laravel 事件也是一種更好、更清潔的方法。但是事件解決方案的問題是您無法確定模型是否已創(chuàng)建,是時候調(diào)用事件還是它仍處于創(chuàng)建狀態(tài)(而不是創(chuàng)建狀態(tài))。


查看完整回答
反對 回復(fù) 2022-10-22
  • 2 回答
  • 0 關(guān)注
  • 101 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號