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

时间:2016-07-21 04:01:07

标签: php laravel routing laravel-5.1

我目前在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链接检查器,并没有给我任何错误...我只是不知道该怎么办...

更新

我试过

php artisan route:cache

它给我带来了错误“无法为序列化准备路由[operaciones / cerrar]。使用闭包”

我改变了到这个

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

并向OperacionesController添加一个函数

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

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

更新2

我使用的链接是

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

我尝试将链接更改为

<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]未定义

我还试图做一个 link_to_action ,并在OperacionesController @ cerrar上抛出一个“未定义的动作”

更新3

上传到GitHub

https://github.com/diegorosano/mutual

4 个答案:

答案 0 :(得分:0)

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

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

顶级目录是项目的根目录。它包括app,bootstrap,config等目录。

不要在链接中包含“公共”目录。您的服务器应配置为提供公共目录。

答案 1 :(得分:0)

首先,尝试运行这个工匠命令

php artisan route:cache

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

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

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

2)打开CMD&amp; cd到app根目录(你可以找到.env文件..etc) 3)使用工匠php artisan serve

运行php内置服务器

这会显示一个链接,请尝试http://localhost:8000/operaciones/cerrar

修改

将路线放在资源路线上方

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

<强>照片管理

enter image description here

<强> RESULT

enter image description here

答案 2 :(得分:0)

  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. 如果您希望 操作

    ,请执行以下操作

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

  4. 但是这里也使用了相同的路线,因此在这里不使用'as'

    编辑:

    我不知道出了什么问题,但你直接使用它会调用你的函数:

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

答案 3 :(得分:0)

解决方案是从Laravel 5.1迁移到5.2 ......现在可以在每条路线上运行。 Ty all