Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么控制器没有重定向到Laravel 5.4中的正确视图_Php_Laravel - Fatal编程技术网

Php 为什么控制器没有重定向到Laravel 5.4中的正确视图

Php 为什么控制器没有重定向到Laravel 5.4中的正确视图,php,laravel,Php,Laravel,在下面的代码片段中,我的示例页面中有一个html表单,表单的action属性设置为exampleController URI,如下所示: htmlPage.blade.php <form action="/exampleController" method="POST"> {{csrf_field()}} // rest of form stuff goes here </form> @if(isset($result)) <table&g

在下面的代码片段中,我的示例页面中有一个html表单,表单的action属性设置为exampleController URI,如下所示:

htmlPage.blade.php

<form action="/exampleController" method="POST">
    {{csrf_field()}}
    // rest of form stuff goes here
</form>

@if(isset($result))
    <table>
        <td>{{ $result }}</td>
    </table>
 @endif
Controller.php

class PageController extends Controller
{
    public function showform()
   {
        return view('htmlPage');
   }
   }
   public function processData(Request $request)
   {
       $result = $request['htmlInputData'];
       return view('htmlPage')->with(compact('result');
   }
}
从这里开始一切正常,数据正在正确处理并显示在页面上,但我想知道为什么控制器为
$result
变量返回的URL地址是
mydomain.com/exampleController
,而不是
mydomain.com/htmlPage
,后者是负责显示结果的html页面行动的细节

另外,由于生成的URL地址是
mydomain.com/exampleController
(这不是我所期望的),因此手动刷新时返回以下错误:

MethodNotAllowedHttpException in RouteCollection.php line 233:
谁能告诉我我错过了什么? 提前谢谢

编辑:
通过更改为
Route::any
MethodNotAllowedHttpException
错误已消失,但控制器返回的URL仍然不正确。

发生这种情况是因为您返回了一个视图(
视图('htmlPage')

如果要访问此url
mydomain.com/htmlPage
,则需要重定向而不是加载视图

将此
返回重定向(url('/htmlPage'))->与(compact('result');

为了成功加载,您需要有另一条路由:

Route::get('/htmlPage', 'PageController@loadhtmlPage');
此外,要加载此url中的视图,您必须在控制器中执行以下操作:

public function loadhtmlPage(Request $request)
{
    return view('htmlPage');
}

这是因为您返回了一个视图(
View('htmlPage')

如果要访问此url
mydomain.com/htmlPage
,则需要重定向而不是加载视图

将此
返回重定向(url('/htmlPage'))->与(compact('result');

为了成功加载,您需要有另一条路由:

Route::get('/htmlPage', 'PageController@loadhtmlPage');
此外,要加载此url中的视图,您必须在控制器中执行以下操作:

public function loadhtmlPage(Request $request)
{
    return view('htmlPage');
}

当从控制器执行返回重定向时,它将导致404。但是直接访问它是可以的。这是因为您的路由中没有路由。php有一个单独的路由来访问表单页面,还有一个单独的路由来处理表单处理是的,但您想转到另一个路由(/htmlpage)提交表单后,我更新了上面的问题以显示我的路由以显示表单页面。当从控制器返回重定向时,它将导致404。但是直接访问它是可以的。这是因为您的路由中没有路由。php有一个单独的路由访问表单页面,还有一个单独的路由处理表单过程ssingyes但您想在提交表单后转到另一个路由(/htmlpage)。我已经更新了上面的问题以显示我的路由以显示表单页面。