【问题标题】:Laravel redirect back or route with message not workingLaravel 重定向返回或路由消息不起作用
【发布时间】:2020-07-09 17:39:18
【问题描述】:

我无法制作redirect()->route()->with()redirect()->back()->with()。它正在重定向,但没有 Flash 消息。

我可以创建单独的 Flash 消息然后重定向,但我想知道我的代码中是否有任何问题,或者这是它的工作方式?

不工作

公共函数销毁(用户 $user) { $userId = $user->id;

if ($user->id == 1 || $user->is('super') || $user->isRoot($user)) {

    return redirect()->back()->with('error', 'Cannot delete the user. The user may be a super or root user.');

} else {

    if (User::destroy($user->id)) {

        return redirect()->route('admin.users.index')->with('success', 'User deleted successfully.');

    } else {
        return redirect()->back()->with('error', 'Cannot delete the user.');
    }

}

工作代码

public function destroy(User $user)
{
    $userId = $user->id;

    if ($user->id == 1 || $user->is('super') || $user->isRoot($user)) {

        Session::flash('error', 'Cannot delete the user. The user may be a super or root user.');

        return redirect()->back();

    } else {

        if (User::destroy($user->id)) {

            Session::flash('success', 'User #' . $userId . ' is deleted successfully.');

            return redirect()->route('admin.users.index');

        } else {
            Session::flash('error', 'Cannot delete the user.');

            return redirect()->back();
        }

    }
}

我也尝试过使用 withErrorwithSuccess 但没有一个 正在工作。

【问题讨论】:

  • 尝试打印会话变量。看看你有什么

标签: laravel


【解决方案1】:

您的第一个代码似乎正确,这一定是您的刀片文件中的问题。试试这样的

@if (session('error')) <div class="alert alert-danger"> {{ session('error') }} </div> @endif

【讨论】:

    【解决方案2】:

    with('error') 这是存储在会话中。如果 web 中间件 未应用于您的路由,那么您将不会收到错误消息。

    检查 php artisan route:list 以确保 网络中间件 存在于您的所有路由中并且只应用一次。

    检查这个answer它可能对你有帮助。

    【讨论】:

      【解决方案3】:

      它尝试使用此代码并获得了结果。我认为你的刀片代码有问题。

      控制器

      public function destroy(User $user) { 
      $userId = $user->id;
      
      if ($user->id == 1 || $user->is('super') || $user->isRoot($user)) {
      
          return redirect()->back()->with('error', 'Cannot delete the user. The user may be a super or root user.');
      
      } else {
      
          if (User::destroy($user->id)) {
      
              return redirect()->route('admin.users.index')->with('success', 'User deleted successfully.');
      
          } else {
              return redirect()->back()->with('error', 'Cannot delete the user.');
          }
      
      }
      

      刀片

                 @if (Session::has('error'))
      
                  <div class="alert alert-danger mt-2">{{ Session::get('error') }} 
                  </div>
      
                  @endif
      

      结果

      【讨论】:

      • 这正是我正在做的,但仍然无法正常工作,
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 2018-12-27
      • 1970-01-01
      • 2014-04-18
      • 2020-11-13
      • 2013-01-15
      • 2015-08-10
      相关资源
      最近更新 更多