[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
假设 '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');
图片
结果
- 嘿,只需更改您的 config/app.php
'env' => env('APP_ENV',
'development'), 'debug' => env('APP_DEBUG', true),
即可
找出错误。
你的第二条路线他们与你没有任何关系OperacionesController这条路线将单独运作。
Route::any('operaciones/cerrar', ['as' => 'operaciones/cerrar', function(){
dd('asdasd');
}]);
如果你想从你的OperacionesController[调用函数cerrar =41=] 这样做
Route::any('operaciones/cerrar', [
'as' => 'operaciones/cerrar', 'uses' => ' OperacionesController @cerrar'
]);
但在这里你也使用了相同的路线,所以在这里
没有使用 'as'
编辑:
我不知道哪里出了问题但是你直接使用它会调用你的函数:
Route::any('cerraroperaciones', OperacionesController@cerrar');
解决方案是从 Laravel 5.1 移动到 5.2...现在适用于每条路线。全部
我目前在 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
假设 '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');
图片
结果
- 嘿,只需更改您的 config/app.php
'env' => env('APP_ENV', 'development'), 'debug' => env('APP_DEBUG', true),
即可 找出错误。 你的第二条路线他们与你没有任何关系OperacionesController这条路线将单独运作。
Route::any('operaciones/cerrar', ['as' => 'operaciones/cerrar', function(){ dd('asdasd'); }]);
如果你想从你的OperacionesController[调用函数cerrar =41=] 这样做
Route::any('operaciones/cerrar', [ 'as' => 'operaciones/cerrar', 'uses' => ' OperacionesController @cerrar' ]);
但在这里你也使用了相同的路线,所以在这里
没有使用'as'
编辑:
我不知道哪里出了问题但是你直接使用它会调用你的函数:
Route::any('cerraroperaciones', OperacionesController@cerrar');
解决方案是从 Laravel 5.1 移动到 5.2...现在适用于每条路线。全部