laravel 刀片页面显示任何内容

4sup72z8  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(123)

我试图使一个索引页,但无论出于何种原因,它没有显示任何东西。这是我的路线

Route::get('/home', 'HomeController@index')->name('home');
Route::resource('student','StudentsController');
Route::resource('student/absense','AbsensesController');

正如你所看到的,我正在使用资源,所以我的路由已经生成了。
这是我的控制器

public function index()
    {
        return view('student.absense.index');

            }

    /**

我的观点是这样的:

@extends('layouts.app')

@section('content')

<table class="table ">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">Prenome</th>
      <th scope="col">Nom</th>
      <th scope="col">Niveau</th>
      <th scope="col">group</th>
      <th scope="col">Payment date End</th>
      <th scope="col"> More options</th>
    </tr>
  </thead>
  <tbody>


    <tr>

      <th scope="row"></th>
    </tr>

</tbody>

</table>
@endsection

这是我进入cmd的路线:

|        | GET|HEAD  | student/absense                | absense.index    | App\Http\Controllers\AbsensesController@index

我得到的页面是空的,没有任何错误。知道为什么吗
顺便说一句,索引是在absense文件夹内,absense文件夹是在学生文件夹内。

k75qkfdt

k75qkfdt1#

与路由的顺序存在冲突:
您正在添加

Route::resource('student','StudentsController');

资源添加以下show route:

student/{student}

那你是在加

Route::resource('student/absense','AbsensesController');

资源添加以下索引路由:

student/absense

但是由于student路由在student/absense路由之前,因此您永远不会访问索引路由,而是访问student/{student},因为{student}通配符捕获student/absense并进入StudentController@show路由。
切换路由定义应该可以解决以下问题:

Route::resource('student/absense','AbsensesController');
Route::resource('student','StudentsController');

或者你可以添加一个连字符,这样你就不会遇到冲突:

Route::resource('student','StudentsController');
Route::resource('student-absense','AbsensesController');
nlejzf6q

nlejzf6q2#

以下声明:

return view('student.absense.test');

您正在尝试在absense文件夹中加载一个名为test的文件,但在这里:

Btw **index** is inside absense folder and absense folder is inside student folder.

你说你在那个文件夹里有一个名为index的文件,而不是test。我想这就是为什么你得不到你想要的。
将absense文件夹中的索引文件重命名为test或将您在index函数中声明的测试文件从test重命名为index。

相关问题