PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Wednesday, January 12, 2022

[FIXED] laravel boot methods not working in the model

 January 12, 2022     laravel, php     No comments   

Issue

hi im using laravel 8 and im trying to do some code after create or update like if model has create set created_by = Auth::user()->id ect and this is my model code

<?php
namespace App\Models;
use Helper;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
use Auth;
use App\Models\User;
use Spatie\Activitylog\Traits\LogsActivity;
class Account extends Model
{
    use Notifiable,SoftDeletes,LogsActivity;
    protected static $logAttributes = 
    [
        'number',
        'name',
        'foreign_name',
        'main_account_id',
        'user_id',
        'account_state_id',
        'note',
        'balance_limit',
        'approved_state_id'
    ];
    protected static $logName = 'accounts';
    protected static $logAttributesToIgnore = [ 'updated_at'];
    protected $table = 'accounts';
    protected $fillable = 
    [
        'number',
        'name',
        'foreign_name',
        'main_account_id',
        'user_id',
        'account_state_id',
        'note',
        'approved_state_id',
        'balance_limit',
        'created_by','deleted_by'
    ];
    public static function boot()
    {
        parent::boot();
        self::creating(function($model){
            $model->created_by = Auth::user()->id; // this code work
        });
        static::updating(function ($model) {
            dd('asdf'); // this not working
        });

        self::deleting(function($model){
            dd($model); // this not working 
        });
        self::restoring(function($model){
            dd($model); // this not working 
        });
    }
}

now the code in

static::updating(function ($model) {
    dd('asdf'); // this not working
});

is not working when i update any account also in delete and restore the dd('asdf'); not working

any help here thanks ..


Solution

Please try to override the booted method instead of boot. It is an update from laravel 7.

protected static function booted()
{
    static::created(function ($user) {
        //
    });
}

Check the official documentation on Using Closures



Answered By - NIKHIL NEDIYODATH
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing