[Laravel 5.1]自定义路由显示白色(空白)页面

[Laravel 5.1]Custom routes display a white (blank) page

我目前在 Win 10 机器上使用 XAMPP (PHP 5.6.21)。

我正在从 .net 中的站点迁移到 laravel。到现在我几乎没有问题,以前的问题大多来自经验不足。但是我找不到这个错误的解决方案。

routes.php

//Operaciones
Route::resource('operaciones', 'OperacionesController');
//Ruta al cierre de Operaciones
Route::any('operaciones/cerrar', ['as' => 'operaciones/cerrar', function(){
dd('asdasd');
}]);

资源路线工作正常,但第二条路线给我带来了一个白色(空白)页面

如果我在网络浏览器中放置任何东西都没有关系

如果我把

http://localhost:8080/mutualv0/public/operaciones/asdasdasd

白页,如果我把

http://localhost:8080/mutualv0/public/operaciones/cerrar

再次...

但是,如果你试试这个

http://localhost:8080/mutualv0/public/operaciones2

NotFoundHttpException

我在日志中没有任何内容,我安装了一个 laravel link 检查器并且没有给我任何错误...我只是不知道该怎么做...

更新

我试过了

php artisan route:cache

它给我带来了一个错误"unable to prepare route [operaciones/cerrar] for serialization. uses closure"

所以我把路线改成了这个

Route::get('operaciones/cerrar', ['as' => 'operaciones/cerrar', 'uses' => 'OperacionesController@cerrar']);

并向 OperacionesController 添加一个函数

public function cerrar()
{
    dd('hello');
}

我使用了 php artisan serve 但仍然有同样的错误...有(空白)页面...

更新 2

我用的link是

<a href="{{ route('operaciones/cerrar') }}" class="btn btn-success" role="button">Cerrar operaciones seleccionadas</a>

我尝试将 link 更改为

<a href="{{ route('cerraroperaciones') }}" class="btn btn-success" role="button">Cerrar operaciones seleccionadas</a>

并将路线更新为

Route::any('operaciones/cerrar', [
    'as' => 'cerraroperaciones', 'uses' => ' OperacionesController@cerrar'
]);

但是它给我一个 Route [cerraroperaciones] not defined

我也试过做一个 link_to_action,并在 OperacionesController@cerrar

给我一个 "action not defined"

更新 3

上传到GitHub

https://github.com/diegorosano/mutual

假设 'mulualv0' 目录是顶级目录,那么您应该使用以下方式访问您的网站:

http://localhost:8080/mutualv0/operaciones/cerrar

顶级目录是项目的根目录。它包括应用程序、bootstrap、配置等目录。

不要在 link 中包含 'public' 目录。您的服务器应配置为服务于 public 目录。

首先,尝试运行这个artisan命令

php artisan route:cache

如果它不起作用,请检查它是否是 XAMPP 问题。

您需要将 Public 文件夹设为 Rootdirectory,(如果这对您有用,那就是问题所在)

1)禁用XAMPP,(如果你使用DB,只在XAMPP中禁用php)

2) 打开 CMD & Cd 到应用程序根目录(在那里你可以找到 .env 文件 ..etc) 3) 运行 php build-in 服务器使用 artisan php artisan serve,

这会显示一个 link,试试它是否有效 http://localhost:8000/operaciones/cerrar

编辑

将路由放在资源路由之上

    Route::any('operaciones/cerrar', [
        'as' => 'cerraroperaciones', 'uses' => ' OperacionesController@close',
    ]);
    Route::resource('operaciones', 'OperacionesController');

图片

结果

  1. 嘿,只需更改您的 config/app.php 'env' => env('APP_ENV', 'development'), 'debug' => env('APP_DEBUG', true), 即可 找出错误。
  2. 你的第二条路线他们与你没有任何关系OperacionesController这条路线将单独运作。

    Route::any('operaciones/cerrar', ['as' => 'operaciones/cerrar', function(){ dd('asdasd'); }]);

  3. 如果你想从你的OperacionesController[调用函数cerrar =41=] 这样做

    Route::any('operaciones/cerrar', [ 'as' => 'operaciones/cerrar', 'uses' => ' OperacionesController @cerrar' ]);

但在这里你也使用了相同的路线,所以在这里

没有使用 'as'

编辑:

我不知道哪里出了问题但是你直接使用它会调用你的函数:

Route::any('cerraroperaciones',  OperacionesController@cerrar');

解决方案是从 Laravel 5.1 移动到 5.2...现在适用于每条路线。全部