Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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
Laravel 如何修复此错误:Controller.php中的NotFoundHttpException?_Laravel_Seo - Fatal编程技术网

Laravel 如何修复此错误:Controller.php中的NotFoundHttpException?

Laravel 如何修复此错误:Controller.php中的NotFoundHttpException?,laravel,seo,Laravel,Seo,我收到此错误消息: Controller.php第269行中的NotFoundHttpException:未找到控制器方法 有人能帮我修复这个错误消息吗?此处显示与错误消息相关的所有代码: HomeController.php public function postSeo(Request $request) { $data = array('meta_title' => $request->get('meta_title'), 'meta_

我收到此错误消息:

Controller.php第269行中的NotFoundHttpException:未找到控制器方法

有人能帮我修复这个错误消息吗?此处显示与错误消息相关的所有代码:

HomeController.php

public function postSeo(Request $request)
{



   $data = array('meta_title' => $request->get('meta_title'),
               'meta_keyword' => $request->get('meta_keyword'),
               'meta_description' => $request->get('meta_description')
               );


   DB::table('meta')->where('meta_id', '1')
                    ->update($data);

   return redirect('/home/article');                

}
routes.php

 Route::post('/home/article', [
     'uses' => 'HomeController@postSeo'
 ]);
articles.blade.php

 <label>SEO</label><br><br>

                                                <table width="350px">
                                                <form action="{{ action('HomeController@postSeo')}}" method="post">
                                                {{ csrf_field() }}      

                                                <tr>
                                                <td>Meta Title</td>
                                                <td><input type="text" value="" name="meta_title"></td>
                                                </tr>
                                                <tr>
                                                <td>Meta Keyword</td>
                                                <td><input type="text" value="" name="meta_keyword"></td>
                                                </tr>
                                                <tr>
                                                <td>Meta Description</td>
                                                <td><input type="text" value="" name="meta_description"></td>
                                                </tr>
                                                <tr>
                                                <td><br><br><input type="submit" value="update"></td>
                                                <td></td>
                                                </tr>

                                                </form>
                                                </table>
SEO

{{csrf_field()}} 标题标记 元关键字 元描述


更新后,您将重定向到
/home/article
,这是一个获取路径。看起来你还没有定义这条路线。您需要添加此路由或重定向到其他地方

Route::post('/home/article', 'HomeController@postSeo');
Route::get('/home/article', 'HomeController@showSeo');

如果您不需要为此设置get路由,请找到适当的页面进行重定向。

您何时会收到错误?在提交表格时?您正在重定向到
/home/article'
,提交表单时是否设置了获取路径。不,这是唯一的路线。你错过了你要重定向的路线。当您重定向到
/home/article
时,需要为其定义
get
路径。只需重定向到另一个位置或添加新的get route即可在更新后显示某些内容HomeController@postSeo'); 为什么我需要get和post路径?在您的
postSeo
方法中,您可以执行此
返回重定向('/home/article'),因此您需要定义该路由,即get路由。如果您不想重定向到其他位置,那么我应该在公共函数showSeo(request$request){?}中写些什么呢?您不必创建这个路由并在那里显示一些内容。例如,您可以将用户重定向回他们更新的页面<代码>返回()
返回重定向()->back()我有一个简单的问题:域名之后的所有内容是否都需要路由才能继续?