【问题标题】:My Laravel Routing doesnt work anymore, it shows 404我的 Laravel 路由不再起作用,它显示 404
【发布时间】:2020-01-24 06:30:28
【问题描述】:

我有一个 adminmodul,我可以在其中编辑或删除一些用户配置文件,并且我可以激活或停用用户配置文件。

一切都很完美。但是突然我的路线不再起作用了。现在我收到错误 404 - 找不到页面。

我不知道问题出在哪里,因为我没有更改代码中的任何内容。

我认为我的路线不起作用。有谁知道为什么?

我试图改变我的路线。

<?php


Route::get('/', 'AdminController@index');

Route::get('/{id}',[
    'as' => 'adminmodul.deactivate',
    'uses' => 'AdminController@deactivate'
]);



Route::resource('/adminmodul', 'AdminController');

Route::get('/{id}/edit', 'AdminController@edit')->name('adminmodul.edit');

这是我的 web.php

我有一个 AdminController.php,其中我有方法:索引、创建(不要使用它)、编辑、更新、销毁和停用

例如:

public function destroy($id)
    {
        $user = User::find($id);
        $angebot = Angebot::where('firma', $id);
        $angebot->delete();
        $user->delete();

        return redirect('/')->with('success', 'Nutzer wurde erfolgreich gelöscht');
    }


    public function deactivate($id)
    {
        $user = User::find($id);
        if ($user->verified == 1){
            $user->verified = 0;
            $user->save();
            $angebot = Angebot::where('firma', $id);
            $angebot->delete();
            return redirect('/')->with('success', 'Nutzer wurde erfolgreich deaktiviert');
        }

        if($user->verified == 0){
            $user->verified = 1;
            $user->save();
            return redirect('/')->with('success', 'Nutzer wurde erfolgreich aktiviert');
            }

    }

索引页正在工作。我的视图位于 resources/views/adminmodul 中,然后是 create.blade.php、edit.blade.php、show.blade.php 和 index.blade.php

如果我将鼠标悬停在链接上,它会显示正确的链接 /1/edit,但如果我点击此链接,它会转到 /edit

我试过这个:

public function test()
{

   return 'test';
}

Route::get('/test', 'AdminController@test');

但它也不起作用并显示 404

为什么找不到 404 页面?

【问题讨论】:

  • 其他链接是否在您的应用上运行?您是否创建了到控制器的简单路由并进行了检查?
  • 是的,我更改了帖子
  • 有效果吗?
  • 清除路由器缓存php artisan route:clear
  • 如果你覆盖了大部分Route::resource('/adminmodul', 'AdminController'); 路由,你为什么还在使用它?请运行php artisan route:list 并检查结果...我认为resource 路由和其余路由之间存在冲突

标签: laravel routing http-status-code-404


【解决方案1】:

我认为由于通配符,您应该尝试此顺序以避免冲突


Route::get('/', 'AdminController@index');

Route::get('/{id}/edit', 'AdminController@edit')->name('adminmodul.edit');

Route::get('/{id}',[
    'as' => 'adminmodul.deactivate',
    'uses' => 'AdminController@deactivate'
]);

Route::resource('/adminmodul', 'AdminController');

【讨论】:

    【解决方案2】:

    将您的编辑路线放在 Route::resource 上方

    Route::get('/{id}/edit', 'AdminController@edit')->name('adminmodul.edit');
    Route::resource('/adminmodul', 'AdminController');
    

    请注意,您的新方法必须位于 Route::resource 之上

    【讨论】:

      猜你喜欢
      • 2019-12-15
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2014-09-04
      • 2019-04-02
      相关资源
      最近更新 更多