Итак, я пытаюсь удалить модель, а затем вернуть response()->json([...]). По какой-то причине, когда я удаляю модель, она всегда возвращает NULL, что бы я ни делал.
Вот функция в модели User, которая используется для удаления данного пользователя.
/**
* @return bool|\Illuminate\Http\JsonResponse|null
* Delete user
*/
public function deleteUser()
{
// If the admin deletes his own account we need to check if there is another admin. There must exists at least 1 admin
if ($this->user_id == auth()->user()->user_id && (auth()->user->hasRole('admin'))) {
if (User::whereHas('roles', function($query) { $query->where('id', 1); })->count() <= 1) {
return response()->json([
'success' => false,
'message' => 'There must be another admin if you remove your own user.'
]);
}
}
if (!$this->delete()) {
return response()->json([
'success' => false,
'message' => 'Could not delete user!'
]);
}
return response()->json([
'success' => true,
'message' => 'User was deleted successfully!'
]);
Есть ли что-то, что мне не хватает, когда я хочу вернуть собственный ответ?
РЕДАКТИРОВАТЬ Вот метод контроллера
public function postDelete(User $user)
{
$user->deleteUser();
}
Неа. В настоящее время только из управления пользователями на панели инструментов.
В таком случае, почему вы помещаете такую логику в модель, а не просто сохраняете ее в контроллере?
Хороший вопрос. Я не знаю, почему я это делаю, мне так кажется лучше, но разве это плохая практика? Должны ли проверки/валидации быть в контроллере?
Да, я определенно рекомендую просто держать его в своем контроллере. Можете ли вы показать метод контроллера, где вы вызываете deleteUser()?
Конечно, я отредактирую пост. Дай мне секунду.






Вам просто не хватает return в вашем методе контроллера:
public function postDelete(User $user)
{
return $user->deleteUser();
}
Ух ты.. Всегда самые маленькие вещи... Спасибо за внимание и советы по сохранению некоторой логики в контроллере. Есть некоторые изменения, чтобы сделать. :D
@Kaizokupuffball Все в порядке. Рад, что смог помочь! :)
Вы хотите иметь возможность удалить пользователя более чем в одном месте в вашем приложении, то есть у вас есть несколько мест, где пользователь может быть удален?