插入或删除后返回同一行中的相同视图。 Laravel

时间:2017-08-09 06:40:55

标签: php sql laravel

我是laravel和php的新手。我在函数完成后编写了删除和插入函数的代码。我需要返回相同的视图,以便用户可以删除或重新插入。 我尝试删除函数的代码:

function deleF(Request $request)
    {
      $filename=$request->input('filename');
      DB::table('files')->where(['id'=>$filename])->delete();
      return redirect()->back()->with('alert','deleted');
    }

但我有这个错误:

  

未定义的变量:courseN

注意:courseN这个变量我在视图中使用它之前的这个函数。

更新: 这是包含$ courseN:

的视图的一部分
  <ul class="nav nav-tabs">
      @foreach  ($courseN as $cou)
      <li>{{$cou->enname}}</li>
      @endforeach
    </ul>

3 个答案:

答案 0 :(得分:1)

也许您想要返回的上一个视图可以通过POST或GET以外的其他方法访问。当您使用back()方法时。您正通过GET方法重定向回您的页面。因此,传回数据不是解决方案。

您只有两个选项

  • 您应该将上一页的方法更改为GET,以便您 可以轻松回到你想要的任何时间。
  • 或通过AJAX删除该项目,因此页面不需要刷新。

答案 1 :(得分:0)

据我所知..上面的功能运行得很好。但视图加载时没有courseN变量,因此您有错误

尝试更改您的功能,以便将courseN变量传递给您的视图。

例如:

function deleF(Request $request)
    {
      $filename=$request->input('filename');
      DB::table('files')->where(['id'=>$filename])->delete();

      $courseN = 'something it has to be'

      return redirect()->back()->with('courseN',$courseN);
    }

答案 2 :(得分:0)

我想你可以试试这个:

function deleF(Request $request)
    {
      $filename=$request->input('filename');
      DB::table('files')->where(['id'=>$filename])->delete();

      $courseN = 'false';

      return redirect()->back()->with('courseN',$courseN);
    }

希望这对你有用!!!