【问题标题】:Page not redirected laravel 7页面未重定向laravel 7
【发布时间】:2021-03-20 17:56:18
【问题描述】:

我正在 laravel 上创建简单的 crud 应用程序。一旦添加的数据页面应该重定向到索引页面。但不重定向。到目前为止我做了什么,我附在下面。

添加重定向的记录页面后,我这样写 控制器

   public function index()
{
    $students = Student::all();
    return view('index', compact('students'));      
}  
public function create()
{
    return view('create');
} 
public function store(Request $request)
{
    Student::create([
        'name' => $request->name,
        'phone' => $request->phone,
        'address' => $request->address,
        'created_at' => now(),
    ]);
    $student->save();
    return redirect()->route('students.index')->with('success', 'Student has been added');
}

路线

Route::post('/', 'StudentController@index')->name('student.index');

我得到的错误是未定义变量:学生

index.blade.php 完整代码在这里

@extends('layout')
 
@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Laravel 7 CRUD Example from scratch - ItSolutionStuff.com</h2>
            </div>
            <div class="pull-right">
            <a class="btn btn-success" href="{{ route('student.create')}}"> Create New Student</a>
            </div>
        </div>
    </div>
   
    @if ($message = Session::get('success'))
        <div class="alert alert-success">
            <p>{{ $message }}</p>
        </div>
    @endif
  
    <table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Name</th>
            <th>Phone</th>
            <th>Address</th>

        </tr>
  
        @foreach ($students as $student)
        <tr>
            <td>{{ $student->id  }}</td>
            <td>{{ $student->name }}</td>
            <td>{{ $student->phone }}</td>
            <td>{{ $student->address }}</td>
        </tr>
        @endforeach
    </table>

      
@endsection

【问题讨论】:

  • 你可以直接改成anyRoute::any('/', 'StudentController@index')-&gt;name('student.index');

标签: laravel


【解决方案1】:

你在这里有错误$student-&gt;save();当你使用create()时不需要保存

public function store(Request $request)
{
    Student::create([
        'name' => $request->name,
        'phone' => $request->phone,
        'address' => $request->address,
        'created_at' => now(),
    ]);
   
    return redirect()->route('students.index')->with('success', 'Student has been added');
}

【讨论】:

  • return redirect()->route('student.index')->with('success', '学生已添加');我这样说先生显示相同的错误未定义变量:学生
  • @haridran 立即查看
  • 现在工作,先生。再次我想做分页如何将它添加到索引页面上先生请帮助
【解决方案2】:

您不能重定向到POST 路由。您需要将路由动词更改为GET

【讨论】:

  • Route::get('/', 'StudentController@index')->name('student.index');我把这样再次显示未定义的变量:学生
  • 编辑您的帖子并在StudentController 中添加index 方法的代码
  • 您引用了student,但控制器中的变量名是students。错误似乎来自index.blade.php 视图。编辑您的帖子并添加您的index.blade.php 查看代码
  • 我添加了 index.blade.php
猜你喜欢
  • 2020-10-10
  • 1970-01-01
  • 2019-12-13
  • 2011-08-15
  • 2023-03-10
  • 2020-09-01
  • 2018-10-14
  • 2016-01-21
相关资源
最近更新 更多