Это проблема, с которой я столкнулся: мой код настроен так, что всякий раз, когда обновляется заголовок модели X, он должен изменять счет модели Y.
Итак, я отправляю запрос, чтобывызовет событие, описанное выше, НО всякий раз, когда я проверяю, внесены ли изменения в базу данных, это не так.
Я пробовал dd () в обновленной функции X Observers, и она запускается правильно.
Есть идеи?
Редактировать: я тестирую с assertDatabaseHas ()
Edit2: Это мой код для теста
public function testBasicTest()
{
$user = factory(User::class)->create();
$book = Book::create([
'user_id' => $user->id,
'name' => 'test'
]);
$response = $this->getJson('/api/books-update?book_id=' . $book->id);
$response->assertStatus(200);
dd($response->getContent(), DB::table('books')->where('name', '=', 'JAJCA')->get());
}
Иэто мой контроллер:
public function testEndpoint(Request $request)
{
$book_id = $request->get('book_id');
$book = Book::find($book_id);
$book->update([
'name' => 2
]);
return response()->json($book, 200);
}
А это BookObserver @ updated
public function updated(Book $book)
{
$book->name = 'JAJCA';
}
Последняя строка из TestBasicTest для getContent распечатывает: name => JAJCA
А для DB::table('books')->where('name', '=', 'JAJCA')->get()
возвращаетпустой массив.