メリークリスマスの男!laravel Eloquentモデルの更新イベントが発生しない
私はLaravelを初めて利用しています。ちょうど私がサービスプロバイダとモデルイベントを使用して更新情報を記録しようとすると、初心者の質問がありました。
は、オンラインドキュメント以下の通りであった:一緒に入れた後https://laravel.com/docs/5.3/eloquent#events
すべてのコードを、私はモデルのイベントのみが使用を作成するときに火災が、私は、ユーザーを編集するとき何をログに記録したことがないことがわかります。
私は何かを見逃しましたか? $ユーザーが正しく割り当てられていないように感じる。これ、どこから来たの?他のサービスプロバイダから?
説明やヒントがあれば幸いです!
<?php
namespace App\Providers;
use App\User;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
User::creating(function ($user) {
Log::info('event creating');
});
User::created(function ($user) {
Log::info('event created');
});
User::updating(function ($user) {
Log::info('event updating');
});
User::updated(function ($user) {
Log::info('event updated');
});
User::saving(function ($user) {
Log::info('event saving');
});
User::saved(function ($user) {
Log::info('event saved');
});
User::deleting(function ($user) {
Log::info('event deleting');
});
User::deleted(function ($user) {
Log::info('event deleted');
});
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}
'create'と' edit'を行い、あなたのコードは何ですか?したがって、イベントが発生しなかったか、イベントを開始していない一括更新を行っているため、変更が行われなかった可能性があります。 –
ありがとう@LionelChan、OhgodwhyとEric Tucker! User :: find($ id) - > update(['username' => $ newUsername]);を更新すると、イベントトリガは完全に動作しています。あなたの助けに感謝! – northblue
同じことは 'delete'に行きます。モデルは、モデルオブジェクトが作成されている場合のみ、関連するイベントを発生させます。つまり、オブジェクトを取得するために 'find'、' get'、 'first'を最初に実行した場合にのみ起動します: –