【问题标题】:New Laravel Routes not working新的 Laravel 路线不起作用
【发布时间】:2018-09-25 20:24:54
【问题描述】:

我有一个问题,laravel 中的新路由不起作用,url 显示了正确的路由,但几乎就像它没有到达我的路由 web 文件一样,每次都返回 page not found

我尝试过: 使用命名路线, 将功能移动到不同的控制器, 清除路由缓存, 清除应用缓存转储自动加载, 确保 AllowOverride 设置为 All

Web.php:

    <?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

/*
|--------------------------------------------------------------------------
| Courses
|--------------------------------------------------------------------------
*/
Route::get('/courses', 'CourseController@index');
Route::get('/courses/create', 'CourseController@create');
Route::get('/courses/{course}', 'CourseController@show');
Route::get('/courses/{course}/edit', 'CourseController@edit');
Route::post('/courses', 'CourseController@store');
Route::patch('/courses/{course}', 'CourseController@update');
Route::delete('/courses/{course}', 'CourseController@destroy')->name('course-delete');

Route::get('/courses/statistics', 'CourseController@statistics');

/*
|--------------------------------------------------------------------------
| First Aid
|--------------------------------------------------------------------------
*/
Route::get('/section/{section}', 'SectionController@show');


/*
|--------------------------------------------------------------------------
| First Aid
|--------------------------------------------------------------------------
*/
Route::get('/progress', 'UserProgressController@index');
Route::get('/progress/create', 'UserProgressController@create');
Route::get('/progress/{section}', 'UserProgressController@show');
Route::get('/progress/formativeresults', 'UserProgressController@formativeresults');
//Route::get('/progress/coursestatistics', 'UserProgressController@coursestatistics');
//Route::get('/progress/{progress}/edit', 'UserProgressController@edit');
Route::post('/progress', 'UserProgressController@store');
//Route::patch('/progress/{progress}', 'UserProgressController@update');
//Route::delete('/progress/{progress}', 'UserProgressController@destroy')->name('progress-delete');

控制器:

public function statistics()
    {
        dd('Test');
       return view('coursestatistics');
    }

查看文件名: coursestatistics.blade.php 文件结构视图/coursestatistics

页面链接:

<a class="navbar-brand" href="/courses/statistics">
   {{ __('Statistics') }}
</a>

谁能告诉我什么可能导致路线不起作用?

【问题讨论】:

  • 显示完整的路线文件内容,您的路线之一可能会覆盖此路线
  • 用完整的路由文件更新问题
  • 好的,谢谢,好多了
  • 南非同胞 :P 你在个人资料上拼错了软件 :D
  • 哈哈很好发现谢谢@emotality 一定会解决这个问题

标签: php laravel routes xampp


【解决方案1】:

尝试放置

Route::get('/courses/statistics', 'CourseController@statistics');

在这行特定的路线代码下方

Route::get('/courses/create', 'CourseController@create');

laravel 路由的一般规则是将特定路由放在相关的通配符路由之前。链接here

【讨论】:

  • 这对我有用,谢谢!,可能发现 Route::get('/progress/{section}', 'UserProgressController@show'); 的另一个问题可能是因为通配符未命名为进度以及导致低于此路径的任何路线出现问题。
  • 啊,不错的收获! :D
  • @JellyBean 你也修复了进度路线吗?
  • 是的,只需将通配符命名为与路线相同,一切都很好,谢谢
  • 更新我关于通配符的评论,并不是说它应该与路由命名相同,只要在控制器中也使用了通配符,它​​就可以命名任何东西,例如公共函数存储(模型 $wildcard){ ... }
【解决方案2】:

我也有同样的问题,所有这些魔法都用配置做了,什么都没有.. 解决方案:运行:php artisan route:clear

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 2017-10-02
    • 2013-05-03
    • 2014-09-08
    • 2015-03-18
    相关资源
    最近更新 更多