1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel とPHP TipsAdvent Calendar 2023

Day 2

Tapヘルパーを使って処理をまとめよう

Posted at

概要

tapメソッドは第一引数を返却します。第一引数に何をしたいかは第二引数のクロージャに記述します

使用例1: ユーザーの名前を更新する

//$userにはnameを'hoge'にした後の値が入る
$user = tap(User::first(), function (User $user) {
   $user->name = 'hoge';
   $user->save();
});

使用例2:
第一引数から真偽値を返すメソッドを使用した後に第一引数から動的なメソッドを使用する

第一引数から動的なメソッドを発火したい場合は、第二引数を省略できます。

//before
$user = User::first();
$user->update([
  'name' => 'hoge'
]);
$user->->notify('更新しました')

//after: update()は真偽値を返すが、更新後にUserモデルが持つ動的なメソッドを発火させる
$user = tap(User::first())->update([
    'name' => 'hoge',
])->notify('更新しました');

エクストラ

Higher Order Messagesを使用した場合

Higher Order Messagesについては別途記事を書きます。

// before
$user = User::find(1);
$user->update($data);
$user->notify();

//after
tap(User::find(1))->update($data)->notify();

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?