针对不同的请求重定向a(laravel 5.3)

时间:2017-02-08 07:44:18

标签: php laravel redirect

我正在研究laravel 5.3 我想再次将用户重定向到用户来自哪个页面的不同页面上。 我有3页,一页是

创建

查看全部

查看

我正在使用创建页面进行创建和编辑。 查看全部并查看两个页面都有编辑按钮。点击之后进入Controller编辑方法并在两种情况下重定向到编辑页面。

编辑页面有一个返回按钮。我想当用户点击返回时它应该去查看所有如果他来自查看所有页面编辑其他明智的如果他来自表单视图它应该返回查看他点击返回。

编辑按钮代码与视图和视图一样,所有页面都为

    <li>
      <a href="{{ route('student.edit', $student->id) }}"> Edit</a>
    </li>

点击编辑它来自控制器编辑方法

public function edit($id){
    $student = Student::findOrFail($id);
    $data = ['action' => 'edit'];

    return view('student.create')->with(compact('data', 'student'));
 }

创建页面上的按钮现在就是

<div class="row">
  <button type="submit" value="dd">Save and add</button>
  @if ($data['action'] == 'edit')
  <a href="{{ route('student.index') }}">
     <button type="button">Return</button>
  </a>
  <button type="submit" value="edit">Save</button>
  @endif
</div>

现在它让我从更新方法中查看所有学生,因为我使用按钮值检查

if(Input::get('add')) {
   return redirect()->route('student.create');
}else{
   return redirect()->route('student.index');
}

如何在学生视图的基础上重定向到student.view,以编辑

任何想法我怎么能这样做可能我也可以使用会话请帮助怎么做

3 个答案:

答案 0 :(得分:1)

您可以使用URI获取请求中的$uri = $request->path();,然后使用switch针对$uri的检查来指示下一步操作。

您还需要使用

修改控制器头

use Illuminate\Http\Request;

并将编辑方法更新为public function edit(Request $request, $id){

https://laravel.com/docs/5.3/requests#request-path-and-method

答案 1 :(得分:0)

要返回控制器中的上一页/路径,请使用:

return redirect()->back();

或简单:

return back();

然后你就可以有这样的编辑功能:

public function edit($id)
{
    $student = Student::findOrFail($id);
    $data = [ 'action' => 'edit'];

    return back()->with(compact('data', 'student'));
}

参考:click to see my project on codepen

<强>更新

如果你的意思是它应该在点击Return按钮后返回,那么这应该足够了:

 <a href="{{ URL::previous() }}"> Return </a>
  

PS:我在Laravel 5.2上测试了这个。*它有效   我希望这会有所帮助:)

答案 2 :(得分:0)

使用{{URL :: previous()}}

您可以更新以下代码

<a href="{{ URL::previous() }}"><button type="button">Return</button></a>