Php Laravel删除模型自定义返回

Php Laravel删除模型自定义返回,php,laravel,eloquent,model,Php,Laravel,Eloquent,Model,好的,我尝试删除一个模型,然后返回一个response()->json([…])。出于某种原因,当我删除模型时,无论我做什么,它总是返回NULL 以下是User模型中用于删除给定用户的函数 /** * @return bool|\Illuminate\Http\JsonResponse|null * Delete user */ public function deleteUser() { // If the admin deletes his own account we ne

好的,我尝试删除一个模型,然后返回一个
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)
{
    return $user->deleteUser();
}

您是否希望能够在应用程序中的多个位置删除用户,即您是否有多个可以删除用户的位置?否。目前仅从仪表板中的用户管理。在这种情况下,为什么您要将这种逻辑放在模型中,而不仅仅是放在控制器中?好问题。我不知道我为什么这么做,这样对我来说更好,但这是一种坏习惯吗?检查/验证是否应该在控制器中?是的,我绝对建议将其保存在控制器中。您是否能够显示正在调用的控制器方法
deleteUser()
。。总是最小的事情。。。感谢您的关注,以及在控制器中保留一些逻辑的提示。有一些变化要做D@Kaizokupuffball没关系。很高兴我能帮忙!:)
public function postDelete(User $user)
{
    return $user->deleteUser();
}