php Laravel(10)将我链接到错误的页面

fgw7neuy  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(131)

我目前有一个路由需要链接到控制器。控制器需要给予回projects.blade.php文件。它给了我主页。
这些是我目前拥有的路线

Route::get('/', [App\Http\Controllers\HomepageController::class, 'index'])->name('homepage');

Route::get('/projects', [App\Http\Controllers\HomepageController::class, 'index'])->name('projects');

这是当前控制器中的内容:

class projects extends Controller
{
    public function index()
    {
        return view('projects');
    }
}

然后我有我的刀片文件,其中包含:

@section('content')
    <main>
        <button href="upload.blade.php"> Make a project </button>
    </main>
@endsection

我使用一个模板文件为我的html的其余部分。(不,我没有复制和粘贴到我的模板文件的主要,我检查)
你知道为什么会这样吗?我该怎么解决?我也有一个标准的laravel登录,我可以链接到没有任何问题。

woobm2wo

woobm2wo1#

路线名称:确保您的路由具有不同的名称非常重要。在您的代码中,主页和项目路由的名称都是“homepage”,这可能会导致冲突。将projects路由的名称更改为独特的名称,例如'projects':

Route::get('/', [App\Http\Controllers\HomepageController::class, 'index'])->name('homepage');
Route::get('/projects', [App\Http\Controllers\HomepageController::class, 'index'])->name('projects');

按钮链接:刀片文件中的按钮使用了href属性,而该属性不是定义链接的正确属性。使用a标记创建超链接,并使用href属性指定正确的URL:

@section('content')
    <main>
        <a href="upload.blade.php">Make a project</a>
    </main>
@endsection

路由和控制器名称:确保控制器类的命名正确,并遵循Laravel的命名约定。它应该被命名为ProjectsController(大写的“P”),以符合Laravel控制器的约定。此外,确保控制器位于正确的目录中:

Controller name: ProjectsController.php
Controller class: class ProjectsController extends Controller

相应地更新您的控制器:

class ProjectsController extends Controller
{
    public function index()
    {
        return view('projects');
    }
}

刀片文件位置:确保projects.blade.php文件位于resources/views文件夹中的正确目录中。它应该位于与控制器的命名空间匹配的文件夹结构中。例如,如果您的控制器位于App\Http\Controllers命名空间中,则刀片文件应位于resources/views/projects中。

eanckbw9

eanckbw92#

这里有几个错误。

  • 两个路由执行相同的控制器函数(HomePageController > index)。
  • 您的控制器不正确。

首先,你应该像这样改变你的路线:

Route::get('/', [App\Http\Controllers\HomepageController::class, 'index'])->name('homepage');

Route::get('/projects', [App\Http\Controllers\ProjectController::class, 'index'])->name('projects');

之后,您的控制器将是:

class ProjectController extends Controller
{
    public function index()
    {
        return view('projects');
    }
}

相关问题