티스토리 뷰
이슈
특정 모델의 CRUD 후 옵저버에서 모델 attributes 이외 매개변수 또는 서비스 전달하기.
해결방안
1. Observer bind
use Illuminate\Container\Container;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Events\Dispatcher;
use App\Models\UserModel;
use App\Observers\UserObserver;
...
$args = []; // UserModel Attributes 이외 사용할 매개변수
$container = new Container();
$container->bind(UserObserver::class, fn($app) => new UserObserver($args));
$dispatcher = new Dispatcher($container);
Model::setEventDispatcher($dispatcher);
User::observe(UserObserver::class);
class UserObserver
{
/**
* @var array
*/
private $args; // 매개변수
function __construct(array $args)
{
$this->args = $args;
}
/**
* handle User created
* @param User
*/
function created(User $user)
{
//
}
/**
* handle User updated
* @param User
*/
function updated(User $user)
{
//
}
}
'공부합시다 > php' 카테고리의 다른 글
Laravel에서 kafka 사용하기 laravel-kafka (0) | 2024.09.24 |
---|---|
l5-swagger Response에 Schema + Property 추가하기 (0) | 2024.08.29 |
Laravel Carbon으로 addMonth 오류 (0) | 2024.04.05 |
Laravel Exception Test (0) | 2023.11.15 |
Laravel 다중 DB 사용시 테스트 트랜잭션 사용하기. (0) | 2023.11.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- php
- addMonth
- graphql
- Python
- laravel-kafka
- bitwarden-cli
- Laravel
- l5-swagger
- aaa패턴
- django
- 라라벨
- 메일
- vim
- observer 매개변수 전달하기
- exception-test
- addMonthWithoutOverflow
- 자바스크립트
- POP3
- 정의
- php-laravel
- password-manager
- l5-swagger-response
- MySQL
- laravel-test
- eloquent-observer
- graphql-php
- 정규식
- session+token authorize
- 테스트_다중트랜잭션
- redis
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함